¿A qué se refiere el ID de sesión de audio de Android MediaPlayer?
Como se indica en el título, ¿a qué se refiere el ID de sesión de audio de los objetos de MediaPlayer
? Originalmente, tengo la intención de recuperar el ID de recurso int
recurso de audio que mi MediaPlayer
está reproduciendo. Pero no pude encontrar un método para eso.
Sin embargo, tropecé con este método getAudioSessionId () y me preguntaba si esa era la función que estaba buscando.
- ¿Cómo saber el ancho más pequeño (sw) del dispositivo android?
- ERROR No hay identificador de paquete al obtener valor para el número de recurso
- ¿Es posible usar subcarpetas en drawables en Android?
- Apertura de recursos crudos con prueba Robolectric
- dimen.xml o dimens.xml?
- ¿Cuál es el punto de declarar-estilo?
- ¿Cómo obtener un valor de dimensión que sea una referencia a un atributo?
- Diseño Nombre de la carpeta para Tablet 7 "
- Almacenar datos estáticos en Android - recurso personalizado?
- Acceso a recursos e identificadores de recursos de otras aplicaciones
- Controlar la visibilidad de la vista desde un recurso
- Herramienta para convertir en lotes bitmaps de recursos de Android a diferentes densidades
- ¿Cómo se usa Resources.getFraction ()?
El sistema androide sigue la pista de la reproducción actual o grabación de sonidos (sesiones de audio) y otros servicios pueden conectarse a ellos haciendo referencia a su ID de sesión de audio. La mezcla del sistema (lo que sale de los altavoces) tiene un ID de sesión de audio de 0.
En resumen, eso no es lo que estás buscando a menos que quieras construir un visualizador.
EDIT: Además, para cualquier persona que intenta utilizar el getAudioSessionID()
de AudioRecord
con un Visualizer
o algo más, que no funciona.
De la documentación de AudioManager.generateAudioSessionId :
Un identificador de sesión de audio es un identificador único de sistema para un conjunto de flujos de audio (uno o más mezclados juntos).
El uso principal del ID de sesión de audio es asociar efectos de audio a reproductores de audio, como MediaPlayer o AudioTrack: todos los efectos de audio que comparten el mismo ID de sesión de audio se aplicarán al contenido de audio mixto de los reproductores que compartan la misma sesión de audio.
De la documentación de MediaPlayer.setAudioSessionId :
… si se proporciona un ID de sesión de audio al crear un efecto de audio, este efecto se aplicará sólo al contenido de audio de los reproductores multimedia dentro de la misma sesión de audio y no a la mezcla de salida. Cuando se crea, una instancia de MediaPlayer genera automáticamente su propio ID de sesión de audio. Sin embargo, es posible forzar a este reproductor a ser parte de una sesión de audio ya existente llamando a este método. Este método debe ser llamado antes de uno de los métodos setDataSource sobrecargados.
Para generar un nuevo ID de sesión de audio:
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); int audioSessionId = audioManager.generateAudioSessionId();
AudioManager.generateAudioSessionId()
puede devolver AudioManager.ERROR
.
Compruébelo antes de asignarlo a MediaPlayer
:
if (audioSessionId != AudioManager.ERROR) { mediaPlayer.setAudioSessionId(audioSessionId); }
También :
Tenga en cuenta que el ID de sesión de audio es 0 sólo si se ha producido un problema cuando se ha creado el MediaPlayer.
- TextView no se adhiere a la parte superior derecha
- Cómo pausar los reproductores de música en Android?