Implementación de sonidos de pitido en la aplicación de Android
Tengo una aplicación con la funcionalidad deseada.
Howerver, en ciertos momentos tostadas se muestran y quiero un pitido doble para jugar al mismo tiempo que los tostados se muestran para alertar al usuario de los mensajes que se muestran.
- ¿Biblioteca de sonido nativa en Android que puede cambiar de tono?
- API de audio de bajo nivel para Android
- La muerte global de AudioTrack
- Android - cómo hacer un clic de botón reproducir un archivo de sonido cada vez que se ha presionado?
- Medidor de VU (audio) al grabar audio en Android
No estoy seguro de cuál es el mejor enfoque para reproducir sonidos en android o si hay algunos sonidos por defecto que podría acceder a utilizar para las alertas.
¡Algún consejo sería muy apreciado!
Gracias
ACTUALIZAR
Tengo el siguiente código en mi archivo de actividad principal:
public void playAlertTone(final Context context){ Thread t = new Thread(){ public void run(){ MediaPlayer player = null; int countBeep = 0; while(countBeep<2){ player = MediaPlayer.create(context,R.raw.beep); player.start(); countBeep+=1; try { Thread.sleep(player.getDuration()+100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }; t.start(); }
Tengo un archivo de sonido llamado pitido en res / raw
¿Cómo puedo llamar a este método en una instrucción if donde se muestra un brindis por lo que los 2 se producen al mismo tiempo?
ACTUALIZACIÓN 2:
Aquí está el código en el que intento llamar al método de alerta:
if (elapsedTime > hourAlert) { LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.toast_layout, (ViewGroup) findViewById(R.id.toast_layout_root)); TextView text = (TextView) layout.findViewById(R.id.text); text.setText("HOUR PASSED"); Toast toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.BOTTOM, 0, 160); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show(); playAlertTone(getApplicationContext()); // Edited here now call
¿Algunas ideas?
- Problemas con la configuración de clase MediaRecorder fuente de audio - setAudioSource () - parámetro no compatible
- Texto a voz en android
- Reproducción de audio hacia atrás
- Android Audio SeekBar
- Cambiar la velocidad de reproducción de música en android
- ¿Es Android 2.2 HTTP streaming progresivo = HTTP Live Streaming?
- Entrada y salida de audio inmediatas Android
- Grabar sonido en Android y leer Amplitud
Puede poner su archivo de audio en la carpeta res / raw de su proyecto
Y reproducir audio en un hilo
public void playAlertTone(final Context context){ Thread t = new Thread(){ public void run(){ MediaPlayer player = null; int countBeep = 0; while(countBeep<2){ player = MediaPlayer.create(context,R.raw.beep); player.start(); countBeep+=1; try { // 100 milisecond is duration gap between two beep Thread.sleep(player.getDuration()+100); player.release(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }; t.start(); } //call it like this from your activity' any method if(myCondition){ Toast.makeText(getApplicationContext(), text, duration).show(); playAlertTone(getApplicationContext()); }
Utilizar MediaPlayer
,
http://developer.android.com/reference/android/media/MediaPlayer.html
Hay mucho que saber acerca de cómo utilizar, que está cubierto en el enlace anterior. Aquí está un fragmento de la camisa que ilustra el uso,
final MediaPlayer mediaPlayer = new MediaPlayer(); try { mediaPlayer.reset(); mediaPlayer.setDataSource(...); mediaPlayer.prepare(); } catch (IllegalStateException e) { mediaPlayer.release(); } catch (IOException e) { mediaPlayer.release(); } catch (IllegalArgumentException e) { mediaPlayer.release(); } mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { public void onCompletion(MediaPlayer mp) { mediaPlayer.release(); } }); mediaPlayer.start();
try { AssetFileDescriptor afd = getAssets().openFd("gavel_single.wav"); mMediaplayer = new MediaPlayer(); mMediaplayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); afd.close(); mMediaplayer.prepare(); mMediaplayer.start(); mMediaplayer.setOnCompletionListener(new OnCompletionListener() { public void onCompletion(MediaPlayer mMediaPlayer) { mMediaPlayer.stop(); mMediaPlayer.release(); } }); } catch (Exception e) { e.printStackTrace(); }
Poner su archivo de música en la carpeta de activos