reales - Reproducción de audio con J2ME
libro de android studio en español pdf (4)
¿Cuál es la mejor manera de reproducir audio utilizando la biblioteca de medios de J2ME? Por ejemplo, ¿debería hacer uso del MMAPI o debería simplemente utilizar el método platformRequest (String s) de Midlet?
El siguiente código debería funcionar para el 90-95% de los teléfonos que admiten JSR-135. El pedido de todas las diversas llamadas a métodos es la clave para que esto sea portátil. Esto es para sonidos locales a su JAR. Cualquier transmisión de audio sería otro problema en total :)
// loads the InputStream for the sound
InputStream inputStream = this.getClass().getResourceAsStream( musicFile );
// create the standard Player
musicPlayer = Manager.createPlayer( inputStream, musicEncoding );
musicPlayer.prefetch();
// add player listener to access sound events
musicPlayer.addPlayerListener( this );
if( loopMusic )
{
// use the loop count method for infinite looping
musicPlayer.setLoopCount( -1 );
}
// The set occurs twice to prevent sound spikes at the very
// beginning of the sound.
VolumeControl volumeControl =
(VolumeControl) musicPlayer.getControl( "VolumeControl" );
volumeControl.setLevel( curVolume );
// finally start the piece of music
musicPlayer.start();
// set the volume once more
volumeControl = (VolumeControl) musicPlayer.getControl( "VolumeControl" );
volumeControl.setLevel( curVolume );
// finally, delete the input stream to save on resources
inputStream.close();
inputStream = null;
En algunos dispositivos, el uso de una solicitud de plataforma hará que la aplicación se cierre y, en otras, ciertas solicitudes de plataforma bloquearán el dispositivo (cualquier cosa que no sean URL HTTP en algunos dispositivos).
Por lo tanto, es posible que necesite usar ambos enfoques, eligiendo cuál usar según las pruebas del dispositivo.
Por mejor , ¿qué quieres decir? ¿De la máxima calidad? La mejor experiencia de usuario? La mayoría de los estándares cumple?
Básicamente (este no es el mejor tipo de respuesta que conozco), depende de la plataforma, algo que es un tema familiar con J2ME, ya que las implementaciones pueden variar ampliamente y el MMAPI usualmente aprovecha algún software / hardware nativo. En BlackBerry, el MMAPI funciona muy bien, con algunos caprichos.
Mi consejo es usar el MMAPI donde funcione bien, te dará la aplicación más portátil. Experimente o explore las placas de desarrollador para su conjunto específico de dispositivos de destino para ver qué tan bien funciona en los teléfonos que desea admitir.
El audio local (en el archivo Jar) es más fácil de admitir, como se explica en la respuesta anterior de Shane. Para el contenido en la web se vuelve mucho más difícil ya que entran en juego muchos factores, como problemas de conectividad del servidor, memoria de los teléfonos, etc. Si se le solicitará que admita una gran cantidad de teléfonos, es recomendable trabajar con 2 o 3 técnicas de implementación y usar en consecuencia.