2010-08-28 12 views
11

Tengo un problema donde ocasionalmente el método MediaPlayer.create devolverá nulo, aunque el archivo de audio definitivamente está allí. De hecho, si pongo la llamada para crear en un ciclo while, el reproductor multimedia eventualmente se creará con éxito. Esto solo parece suceder en mi teléfono (HTC Hero ejecutando 2.1) y nunca en el emulador.Android SDK Mediaplayer.create aleatoriamente devuelve nulo

¿Es esto solo un problema con el teléfono? ¿O hay una forma diferente en que debería estar reproduciendo estos archivos de audio?

Tenga en cuenta que quiero cargarlos de forma dinámica, que es get Estoy haciendo la llamada a getIndentifer. Si hay una forma mejor de jugar estos dinámicamente, por favor avíseme.

public void playAudio(String audioFile){ 

    //instance variable of type MediaPlayer 
    _player = null; 
    while(_player == null){ 
     _player = MediaPlayer.create(_context, getResources().getIdentifier(audioFile, "raw", _context.getPackageName())); 
    } 
    _player.start(); 

} 


Gracias.

+0

Tengo el mismo problema en el Droid X. ¿Ha sido capaz de encontrar una solución? He encontrado algún tipo de "arreglo", donde yo llamaría '_player.release()' 'antes de llamar al método create' (' puesta en circulación tiene que ser llamado dentro de un try/catch sin embargo) – Darcy

+0

1 El mismo problema. Quiero reproducir un par de archivos de video y, a veces MediaPlayer.create return null y no puedo reproducir los archivos siguientes. –

Respuesta

1

Un soundpool (Docs) podría ser algo a tener en cuenta.

+0

Podría de hecho. He encontrado, sin embargo, en algunos casos, es posible encontrar soundpool faltaba un poco de características, ya que está muy dirigido a los clips muy pequeñas, con ciclos de vida simples. – torkildr

Cuestiones relacionadas