Cómo jugar ringtone una vez a través de MediaPlayer?

No puedo reproducir un tono de llamada una vez, incluso si la propiedad de bucle de mediaplayer está establecida en false. Parece que esta propiedad fue anulada por el ringtone URI utilizado. Así que onCompletion nunca se dispara.

Curiosamente, si el URI corresponde a un tono de notificación, el bucle se comporta de acuerdo con setLooping . Funciona bien aquí.

Así que hay una manera de reproducir un tono de llamada una vez?

Me enfrenté a este problema antes y lo resolvió mediante OnSeekCompleteListener:

mMediaPlayer.setOnSeekCompleteListener(new OnSeekCompleteListener() { public void onSeekComplete(MediaPlayer mp) { //Your stuff }});

No sé si es la mejor manera de resolver esto, pero funcionó para mí.

Edit: BTW, yo uso ambos oyentes, oncompletionlistener Y onseekcompletelistener. ¡Espero que esto ayude!

  • Una respuesta final sobre cómo obtener datos Exif de URI
  • ¿Cómo obtengo el URI de mi base de datos SQLite en mi aplicación para Android?
  • Convertir cuerda a Uri
  • Descubriendo todo acerca de la clase Uri de Android: uso y propósito
  • Android Uri to Filesize
  • Android camera: Fallo en la entrega del resultado ResultInfo {who = null, request = 0, result = -1, data = null} a la actividad
  • Uri a la notificación de sonido por defecto?
  • Android 2.2 MediaPlayer está funcionando bien con una URL de SHOUTcast, pero no con la otra
  • Pantalla de chat de Skype desde la intención
  • ¿El método notifyChange de ContentResolver notifica también el detalle de Uri?
  • Significado de android.content.UriMatcher
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.