2011-06-05 14 views
11

Actualmente estoy desarrollando un juego simple y ahora es el momento de agregar música y efectos de sonido. Intenté usar MediaPlayer, tal como se describe aquí: Android media player bugMediaPlayer deja de reproducirse después de unos 5 segundos

Sin embargo, tengo otro problema, el MediaPlayer deja de reproducir la música después de unos 5 segundos. ¿Qué es probable que cause esto?

+2

Asegúrese de que el sonido que está jugando es más largo de 5 segundos, primero :) –

+0

Probablemente nos debería mostrar un poco de 'código relacionado MediaPlayer', y también utilizar 'setOnErrorListener (...)' y 'setOnCompletionListener (...)' para ver si se produce un error o la reproducción se completa con éxito. – inazaruk

+0

Tuvimos problemas similares al reproducir transmisiones en línea con MediaPlayer de Android 2.3. Nuestro flujo fue de aproximadamente 2 minutos de duración. Nuestra conclusión fue que probablemente se trataba de un error en Android r tipo concreto de flujo o formato de video. – ATom

Respuesta

49

Tuve este problema también. Probablemente se deba a que el objeto MediaPlayer solo existe dentro de un método.

Por ejemplo:

//ERROR, stops after 5 sec! 
public static void playMusic(int id) 
{ 
    MediaPlayer mediaPlayer = MediaPlayer.create(context, id); 
    mediaPlayer.setLooping(true); 
    mediaPlayer.start(); 
} 

Lo más probable es que el recolector de basura entrar y limpiar y quitar el MediaPlayer-objeto.

que esto esté arreglado el error para mí:

//mediaPlayer-object will not we cleaned away since someone holds a reference to it! 
private static MediaPlayer mediaPlayer; 

public static void playMusic(int id) 
{ 
    mediaPlayer = MediaPlayer.create(context, id); 
    mediaPlayer.setLooping(true); 
    mediaPlayer.start(); 
} 
+2

Esto corrigió mi instancia de este problema. Un poco loco que el MediaPlayer puede obtener gc'd durante la reproducción. –

+3

¡Me salvaste! – Harry

+1

Muy interesante. Una gran manera de explicar cómo funciona la recolección de basura :) – TastyLemons

Cuestiones relacionadas