Git Product home page Git Product logo

ringdroid's People

Contributors

minorninth avatar nfaralli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ringdroid's Issues

Sound is corrupt in new version 2.7.3

Sound is corrupt in new version 2.7.3

When testing the code for version 2.7.3 the sound files which were produced with the new code were corrupt right at the time of editing.

The same files worked well when tested with version 2.6 , but it was able to get only two seconds of data from those files

The files work well , normally.

Tested both on Jellybean Android 4.2.1, Phone xolo Q2000

and

Lollipop android 5.0, Phone Lenovo A7000

Save Unselected part on both sides

I want to save Unselected part on both sides of the wave. i.e.
device-2018-10-04-155103

i want to save unselected part on 1st side and unselected part on part on 2nd side with a combined wave. Is it possible or not. Please any one look in to this issue.
Thankyou

Using ringdroid as library

I want to integrate audio scrubber in my project.I added ringdroid as module in my project.Then changed apply plugin: 'com.android.application' to

apply plugin: 'com.android.library'.
Then removed applicationId and deleted files RingdroidEditActivity and RingdroidSelectActivity..

Still I am getting below error-

Suggestion: use tools:overrideLibrary="com.ringdroid" to force usage
Error:Execution failed for task ':app:processDebugManifest'.

Manifest merger failed with multiple errors, see logs
How to resolve this?I made the minSdkVersion and targetSdkVersion of build.gradle and manifest same.

Android 10 support, it is not working on api level 29.

applying this projection

private static final String[] EXTERNAL_COLUMNS = new String[]{
            MediaStore.Audio.Media._ID,
            MediaStore.Audio.Media.DATA,
            MediaStore.Audio.Media.TITLE,
            MediaStore.Audio.Media.ARTIST,
            MediaStore.Audio.Media.ALBUM,
            MediaStore.Audio.Media.IS_RINGTONE,
            MediaStore.Audio.Media.IS_ALARM,
            MediaStore.Audio.Media.IS_NOTIFICATION,
            MediaStore.Audio.Media.IS_MUSIC,
            "\"" + MediaStore.Audio.Media.EXTERNAL_CONTENT_URI + "\""
    };

return Caused by: java.lang.IllegalArgumentException: Invalid column "content://media/external/audio/media". this error. Please help!

java.lang.OutOfMemoryError: Failed to allocate a 201629195 byte allocation with 6486304 free bytes and 6MB until OOM ringdroid

  1. How to resolve this OOM issue in ringdroid?, This we are getting very frequently. Could you please look into the issue and update me ASAP??

  2. And there I found one more issue with waveform loading. Sometimes the waveform was not generated for full file. Example: We have 5 minutes of song, but ringdroid code generating waveform just for 1 or 1 and minute. Please look into the issues.

I need update on these two issue. Please response to the below email.
EmailID: [email protected]

Thank you.

Fixes the bug about the OnCompletionListener does not work at the frist time

I found that the AudioTrack under SamplePlayer does not trigger PlaybackPositionUpdateListener in the first time

This program does not use isPlaying () or isPaused () at the frist time, and the stop function won`t work if the program does not use these two functions.
I added a new tag to make sure the program which will use the stop function at the frist time.
The following code is part of the code which i had fixed the bug.
I am not sure if there is any other problem after i modified these code, but I have tried it for many times and it work successfully.

int tag = 0; //Added tag
public void stop() {
    if (isPlaying() || isPaused()) {
        mKeepPlaying = false;
        mAudioTrack.pause();  // pause() stops the playback immediately.
        mAudioTrack.stop();   // Unblock mAudioTrack.write() to avoid deadlocks.
        if (mPlayThread != null) {
            try {
                mPlayThread.join();
            } catch (InterruptedException e) {
            }
            mPlayThread = null;
        }
        mAudioTrack.flush();  // just in case...
    }
    if(tag==0){ //Added tag
    	mKeepPlaying = false;
        mAudioTrack.pause();  // pause() stops the playback immediately.
        mAudioTrack.stop();   // Unblock mAudioTrack.write() to avoid deadlocks.
        if (mPlayThread != null) {
            try {
                mPlayThread.join();
            } catch (InterruptedException e) {
            }
            mPlayThread = null;
        }
        mAudioTrack.flush();  // just in case...
        tag++; //add tag state
    }
}
//~~~~~~~~~
public void seekTo(int msec) {
	tag = 0; //Added
    boolean wasPlaying = isPlaying();
    stop();
    mPlaybackStart = (int)(msec * (mSampleRate / 1000.0));
    if (mPlaybackStart > mNumSamples) {
        mPlaybackStart = mNumSamples;  // Nothing to play...
    }
    mAudioTrack.setNotificationMarkerPosition(mNumSamples - 1 - mPlaybackStart);
    if (wasPlaying) {
        start();
    }
}

Insert sound in between of file

I want to add new sound file at particular offset.
I am creating new SoundFile now I want to insert that sound file at mStartPos (starting marker).
How can I do that?
For example :
initial ring is something like 1111111111
Now I am recording new file with data like 2222
Now I want to insert that in between and create new file like 11122221111111

How to convert mp3 to aac(m4a)

i need convert mp3 to aac(or m4a) format. for use in mp4Parser and merge aac with mp4(video). so how to convert mp3 to aac(m4a) by ringdroid?

Strange question in SoundFile.java

Here is a 55M audio file,It takes me about 8 seconds to get the Ringdroid to read.But when I put SoundFile in my project, it takes 80 seconds to read this file.I haven't changed any code in SoundFile, but the reading speed is so bad. After testing, the time spent on the ReadFile(File inputFile) method in SoundFile class is significantly higher.

Audio Duration from Audio Player and WaveFormView not matched

I was loaded into AudioPlayer as well as waveform view
Both classes return an audioDuration for example

int audioDuration = AudioPlayer.getDuration(); //Example value:15935
int mPlayEndMsec = mWaveformView.pixelsToMillisecs(mEndPos) //Example value: 15900

So, I can't identify the user select the exact end position of the audio because selected Value (mPlayEndMsec ) not matched with actual value (audioDuration ).
Is there any workaround is there? How to fix this problem?

source code can't understand exception

I can't understand this code ,is there any article or keywords to learn ?

      int gain;
            if ((buffer[3] & 0xC0) == 0xC0) {
                // 1 channel
                mGlobalChannels = 1;
                if (mpgVersion == 1) {
                    gain = ((buffer[10] & 0x01) << 7) +
                        ((buffer[11] & 0xFE) >> 1);
                } else {
                    gain = ((buffer[9] & 0x03) << 6) +
                    ((buffer[10] & 0xFC) >> 2);
                }
            } else {
                // 2 channels
                mGlobalChannels = 2;
                if (mpgVersion == 1) {
                    gain = ((buffer[9]  & 0x7F) << 1) +
                        ((buffer[10] & 0x80) >> 7);
                } else {
                    gain = 0;  // ???
                }
            }

speed-up or slow-down effect

how can we achieve speed-up or slow down effect.

Speed up / slow down. You could create a terrible sounding speed-up or slow-down effect by skipping every other frame or doubling each frame.

how to skip frame and doubling frame please explain in details .
Thanks.

m4a ringtones not playable

Hi,

the m4a files created by ringdroid are not playable by google play music. And if set as a ringtone, they are not playing either.

Edit: Forgot to mention. I am using ringdroid 2.7.3 from F-droid on Android 5.0.2

Copyright violation

Hi @google-admin

I found this app on Google Play Store. This guys just took the source code, added some ads and put it on the Google Play Store...

As you are the owner of the source code, you can open a request to google (yourself) here to remove the false app from the Store, if it's your wish ;)

Path traversal

RingdroidEditActivity.java
The loadFromFile method loads the file but does not check the file path. The source of the file path is intent, which is not trusted. The attacker may load arbitrary files by constructing malicious parameters (with “../” backtracking).
图片

Waveform should display same as width of screen..

I want to implement the Ringdroid waveform in my android app.But for some songs,the waveform created after choosing the song is larger than the screen size and for songs the waveform width is smaller than the mobile screen width . Plz suggest me the change in code of Ringdroid ,so that every time the waveform of song totally covers the width of screen.

background color of Waveform

Plz help
I want to make background of waveform as transparent and it should show only waveform in blue color .Where to change the code ?

FFT data

Is it possible to get FFT data from soundfile?

OutOfMemoryError - Slow Loading of Audiointo buffer - resolved

OutOfMemoryError While uploading higher file sizes - Slow loading speed [SOLVED]
Since the app is using Heap Memory so you will most probably get OutOfMemoryError while uploading audios of higher file sizes [ 40MB or greater ]. To resolve this issue you can put largeHeap="true" in android manifest but that still wont solve your problem as you would only get around 50 mb for a single app session. to put it simple if i open the app and upload an audio of file size 50MB and after trimming the audio if you want to trim an audio of size 1 or 2MB, you will have to restart [ because GC is called when you clear the app from recents ] the app or else you would get OutOfMemoryError exception. To resolve this issue you need to implement Streams [input and out streams ] that not only increases the file max file limit but also decreases the loading time to a great extent.

Also while uploading some audio files [mp3] the loader gets stuck without throwing any exception.
Ringdroid is an amazing library to handle various operations in android. i've pushed these changes to this rep.

https://github.com/Drabu/ringdroid

Wrong track length

When cutting mp3 new file is generated and play well. However the problem is wrong track length, event if file is 200 seconds long it shows 6 seconds in vlc, exoplayer no issue with playback but this is what I cant figure out. Same thing happening with ringdroid app. Please help me what to do.

Change path to assigned dir

I'm trying to assign file path instead of mediastore. I know that it's setting in Oncreate() in RingdroidSelectActivity. But I have no idea how to do it.

Can somebody plz help me?

Crash while using the search option

If trying to use the search option, Ringdroid crashes with the following message:

Unfortunately, Ringdroid has stopped.

In case it makes any difference, I have about 2400 songs in my library.

I am using:

  • Rindroid 2.7.3 (from F-droid)
  • Android 5.0.2

Cannot assign ringtone to Specific Contact

When testing code for both version 2.7.3 and 2.6 we were not able to assign to specific contact the ringtone create either from RingdroidSelectActivity, Or RingdroidEditActivity

Tested both on Jellybean Android 4.2.1, Phone xolo Q2000

and

Lollipop android 5.0, Phone Lenovo A7000

Not playing sound file from android raw folder

Hey , i am using your source code to make a android tone maker. The problem comes when I am trying to pick the sound file from raw it does not work and give the "Cannot play this media file error". I have tried to do it from by giving the id of the raw folder and by giving the path. Thanks in advance :-)

package name problem

Hey, I am new to android and learning with this project ,I have a doubt and if someone could help me it would be really helpfull.
when I change the package name the app works but it doesn't allow me to goto next activity.
below is the logcat details ,no error just showing this.
I have changed the package name from "com.ringdroid" to "com.ringxskah".
ring

How can I resize waveform for 30 seconds play? Please, HELP!

Guys, how can i resize waveform so that the width of the screen of the device was for example 30 seconds. So that u can't use Marker and define the StartPos and EndPos with the width of screen. Please, HELP!

Here is more clear.
untitled
Thanks!!!

Completed es (Spanish) translation

I have completed your spanish traslación oficina your application. Here is the xml:

<?xml version="1.0" encoding="utf-8"?>
<!--
/**
 * Copyright (c) 2008, Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License. 
 * You may obtain a copy of the License at 
 *
 *     http://www.apache.org/licenses/LICENSE-2.0 
 *
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 * See the License for the specific language governing permissions and 
 * limitations under the License.
 */
-->

<resources
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="MissingTranslation">

    <string name="ringdroid_app_name">Ringdroid</string>

    <!--
     Main / media select activity
     -->

    <string name="main_activity_label">Ringdroid</string>

    <string name="search_edit_box">Buscar</string>

    <string name="button_start_record_activity">Registro nuevo</string>

    <string name="sdcard_readonly">La tarjeta SD es de sólo lectura y Ringdroid precisa que sea de escritura.</string>
    <string name="no_sdcard">Ringdroid sólo puede funcionar con una arjeta SD insertada.</string>
    <string name="sdcard_shared">Ringdroid no funciona si el aparato está montado en un dispositivo USB.</string>

    <string name="button_options">Opciones</string>

    <!--
     Edit activity
     -->

    <!-- Labels next to the start and end time edit boxes -->
    <string name="start_label">Inicio:</string>
    <string name="end_label">Fin:</string>

    <string name="edit_intent">Editar</string>

    <string name="time_seconds">segundos</string>

    <!-- After you save a notification or ringtone and have more options
         for what to do with them -->
    <string name="what_to_do_with_ringtone">Guardado. ¿Quieres que sea el tono por defecto o para un contacto?</string>
    <string name="set_default_notification">Guardado. ¿Quieres que sea tu notificación por defecto?</string>

    <string name="make_default_ringtone_button">Por defecto</string>
    <string name="choose_contact_ringtone_button">Asignar a contacto</string>
    <string name="do_nothing_with_ringtone_button">Cerrar</string>

    <!-- Progress dialog text for loading, recording, or saving... -->
    <string name="progress_dialog_loading">Cargando…</string>
    <string name="progress_dialog_recording">Recording…</string>
    <string name="progress_dialog_saving">Guardando…</string>
    <string name="progress_dialog_cancel">Cancel</string>
    <string name="progress_dialog_stop">Stop</string>

    <!-- Image button descriptions for accessibility -->

    <string name="start_marker">Comenzar creador</string>
    <string name="end_marker">Finalizar creador</string>
    <string name="rewind">Retroceso</string>
    <string name="play">Reproducción</string>
    <string name="stop">Parar</string>
    <string name="ffwd">Avance rápido</string>
    <string name="zoom_in">Acercarse</string>
    <string name="zoom_out">Alejarse</string>
    <string name="save_button">Guardar</string>

    <!--
     Menu items
     -->

    <string name="menu_save">Guardar</string>
    <string name="menu_reset">Reiniciar</string>
    <string name="menu_about">Acerca de</string>
    <string name="menu_show_all_audio">Mostrar sonidos</string>

    <!--
     Context menu items
     -->

    <string name="context_menu_edit">Editar</string>
    <string name="context_menu_delete">Eliminar</string>
    <string name="context_menu_default_ringtone">Por defecto</string>
    <string name="context_menu_contact">Asignar a contacto</string>
    <string name="context_menu_default_notification">Por defecto</string>

    <!--
     File Save dialog
     -->

    <string name="file_save_title">Guardar como:</string>
    <string name="file_save_button_save">Guardar</string>
    <string name="file_save_button_cancel">Cancelar</string>

    <string name="ringtone_type_label">Tipo:</string>

    <string name="type_music">Música</string>
    <string name="type_alarm">Alarma</string>
    <string name="type_notification">Notificación</string>
    <string name="type_ringtone">Tono llamada</string>

    <string name="ringtone_name_label">Nombre:</string>

    <string name="artist_name">Ringdroid</string>

    <!--
     Delete confirmation dialog
     -->

    <string name="delete_ringtone">Eliminar tono</string>
    <string name="delete_alarm">Eliminar alarma</string>
    <string name="delete_notification">Eliminar notificación</string>
    <string name="delete_music">Eliminar música</string>
    <string name="delete_audio">Eliminar sonido</string>

    <string name="confirm_delete_ringdroid">¿Seguro?</string>
    <string name="confirm_delete_non_ringdroid"
    >¿Seguro? Este archivo no se creó con Ringdroid.</string>

    <string name="delete_ok_button">Eliminar</string>
    <string name="delete_cancel_button">Cancelar</string>

    <string name="delete_failed">Imposible eliminar archivo</string>

    <!--
     Success and error messages
     -->

    <string name="alert_title_success">Éxito</string>
    <string name="alert_title_failure">Error</string>
    <string name="alert_ok_button">Aceptar</string>
    <string name="alert_yes_button">Sí, por favor.</string>
    <string name="alert_no_button">No, gracias.</string>

    <string name="save_success_message">Guardado</string>
    <string name="default_ringtone_success_message">Tono por defecto cambiado</string>
    <string name="default_notification_success_message">Cambiar sonido de notificación por defecto</string>
    <string name="play_error">Imposible reproducir este archivo multimedia</string>
    <string name="no_unique_filename">Imposible encontrar un nombre de archivo único</string>
    <string name="record_error">Error recording audio</string>
    <string name="too_small_error">Imposible guardar un archivo tan corto, amplíalo.</string>
    <string name="write_error">Error al escribir archivo</string>
    <string name="read_error">Error al leer archivo</string>

    <string name="no_space_error">La tarjeta SD está llena, no hay espacio para guardar este archivo.</string>

    <string name="bad_extension_error">Ringdroid aún no puede editar este tipo de archivos.</string>
    <string name="no_extension_error">Ringdroid no puede editar un archivo si no tiene extensión .mp3 o .wav.</string>

    <!--
     Choose Contact Activity
     -->

    <string name="choose_contact_title">¿A qué contacto se asignar este tono?</string>
    <string name="success_contact_ringtone">Tono asignado correctamente a:</string>

    <!--
     About
     -->

    <string name="about_title">Acerca de Ringdroid</string>
    <string name="about_text">Usa Ringdroid para editar archivos de sonido MP3, OGG, WAV, AAC y AMR y crear tonos, alarmas y notificaciones.\n
  \n
  Truco: copia archivos de sonido en la tarjeta SD con un cable USB.\n
  \n
  Truco: para eliminar un archivo de sonido, púlsalo durante unos segundos en la pantalla principal. Más…\n
  \n
  Truco: toca en cualquier parte de la onda para empezar a reproducir desde ese punto.\n
  \n
  Truco: durante la reproducción, toca la palabra Inicio o Fin para definir rápidamente los marcadores de inicio y fin.\n
  \n
  Truco: usa el botón para ajustes más precisos.\n
  \n
  Versión %s\n
  \n
  Desarrollador: Dominic Mazzoni, Nicolas Faralli\n
  Gráficos: Joseph Wain\n
  Soporte y textos: Eugene Koh\n
  \n
  Ringdroid es software gratuito distribuido con la licencia Apache 2.0. El código fuente está en github.com/google/ringdroid</string>

</resources>

Translation made with Stringlate.

Touch zoom functionality

Thank you for sharing this. You have done a great work.
I have a requirment to apply touch zoom functionality on visualization graph. In the image I can see the zoom up and down button, but when I run the code I can't find them. Please tell me how I can add touch zoom functionality on it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.