ringdroid's People
Forkers
rammybt nfaralli volcanoscar jxljf ananth163 cng1985 weijiang8410 importre hedongfu yoserb getting goed3 zacarkim masoud2v guangliang2014 zyhuang512 markatithinkbest yassinia olayinkasf rvganesh kuldeep199221 silverray2020 ttpro1995 brama051 xunlixing kidundead ionux lhc180 khalidkhan020 owenb132 msoftware hirk8877 hirk7788 jio6ctepok n2a5me markovsmodel sahebjohar92 barayuda mpriyonots rohitshampur a3994288 aikongmeng suryann liyofx dastaniqbal snydermann34 tangfuhao trananh1992 nikunjkacha gjohnrao nirhaim njovy curlyqueues hgparedess sanjayasl a19920714liou anisur3036 usefullforks xiaomauncle dailixing priyanshu-agarwal1 songyunbiao judrummer eneim shubhamparamhans amorenew louisrenweiwei simoconfa vv73 chokkarg qyqx shivanshgit rokney guffywave pk-codebox-evo jinmiao smartnetguru hungtdo nikhil-z rameshvoltella pedluy vadivelansr 0lwp0 minafared govindapaliwal zjt123 fanei hyperioniii yuqilin sabarcor6 yangsheng zhang11wu4 hoadn mondoktamas tai wangtingbo enterstudio xmilton lnpusong123 tarunmaheringdroid's Issues
Draw waveform in fix length no matter how long audio is.
I want to display waveform in fixed length like device width. I don't want waveformview will scroll. Is it possible and how?
Like this after recording it display whole waveform data in singe screen -> https://online-voice-recorder.com/
Thanks.
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
How to assign file name to new recorded audio ?
Save Unselected part on both sides
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
-
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??
-
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?
Android N - audio does not play correctly
When playing any audio file or recording on Android-N developer preview 4 (Nexus 6P) the audio plays but the sound is just static noise.
midi support
Please add support for editing midi format.
How to split and play individual channels
Hi, how to split and play individual channels
Thanks
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; // ???
}
}
License and Distribution Information
I noticed that there is no LICENSE file. How is this app licensed?
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.
Any Licence require to use this library in my Android application?
Can i use this library in my application, is it available free ? Or any licence or approval require ?
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
Path traversal
Click on edit option crash the app
I am going to edit my song using the option edit and it result crash the app. My device is samsung galaxy S7 Android Nougat 7.0
RingDroid only loaded 5.94s some files mp3
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.
Reading audio file takes more time
In RingdroidEditActivity, loading audio file takes more time, but in your app audio loads within fraction of second, how
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 ?
Please add latest apk to releases/wiki
Sound quality has changed after I edited AAC format audio, but not repicated in MP3 format
Sound quality has changed after I edited AAC format audio, but not repicated in MP3 format
Ringdroid waveform in full width according to width of mobile screen
FFT data
Is it possible to get FFT data from soundfile?
2.7.4 tagged to wrong commit
The 2.7.4 tag points to the wrong commit. See here: https://github.com/google/ringdroid/blob/v2.7.4/app/build.gradle .
Please retag, or re-release as 2.7.5.
Because of this e.g. F-Droid won't build the latest version: https://f-droid.org/repository/browse/?fdfilter=ringdroid&fdid=com.ringdroid
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.
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?
Show visualization at runtime while recording
Hi,
I want to show visualization while recording (visualization with recording). Please suggest me how I can achive this.
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
Latest APK
Is there a location here on the project page that has the latest APKs. There is a list here but only has the older APks https://github.com/google/ringdroid/wiki/APKs.
Thanks
Oreo adaptive icon shape
Please add support for icon shape
https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive.html
https://material.io/guidelines/style/icons.html
you should fix it to upload new version to google play
https://www.xda-developers.com/google-play-app-updates-must-target-android-8-0/
After saving the ringtone seekbar not working.
After saving the audio the seekbar is not not working and if i click on the seekbar audio stops playing.
Since the duration of the audio changes while saving/writing.
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
Click on set as default notification crash the app
I am going to set the ringtone as my default notification ringtone, i select this option and it crash the app and the app stopped working.
Device samsung galaxy s7 Android Nougat 7.0
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 :-)
1221
getinputbuffers is deprecated in API 21+
getinputbuffers is deprecated in API 21+ :| please support ringdroid and update...
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".
How can I resize waveform for 30 seconds play? Please, HELP!
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.
Edit a song in lanscape mode and the press the back key in landscape mode crash the app
App crashed when press the back key in landscape mode in editing screen. Be sure that you open the app in landscape mode.
Device: Samsung galaxy S7 Android Nougat 7.0
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.