Tengo algunos archivos de video .MP4 que deben leerse en una VideoView en una actividad de Android. Estos videos incluyen varias pistas de audio, cada una de las cuales corresponde a un idioma de usuario (por ejemplo: inglés, francés, japonés ...).
Tengo problemas inesperados para encontrar ayuda o documentación para proporcionar dicha función. Actualmente puedo cargar el video y reproducirlo en una VideoView con un MediaController, pero no para cambiar las pistas de audio.
No estoy seguro de que el SDK de Android proporcione una forma sencilla de hacerlo, lo que me deja bastante desorientado sobre cómo resolver mi problema. Estaba pensando en extraer cada pista de audio, cargar el audio que quiero en un MediaPlayer dependiendo del idioma, luego hacer que el audio y el video se reproduzcan juntos. Pero me temo que podrían surgir algunos problemas de sincronización y evitar que lo haga.
Si tiene alguna pista, algún consejo para ayudarme a comenzar con este problema, es más que bienvenido.Android: múltiples pistas de audio en VideoView?
Respuesta
No he probado todavía, pero parece que la biblioteca Vitamio tiene soporte para múltiples pistas de audio (entre otras características interesantes). Es API compatible con la clase VideoView
de Android.
Probablemente tendría que usar VitamioVideoView.setAudioTrack()
para establecer la pista de audio (por ejemplo, según la configuración regional). Vea Vitamio API docs para más detalles.
Al final hice exactamente lo que sugerí. Separé los datos de audio y video, cargando el audio en el MediaPlayer dependiendo del idioma del usuario, y luego sincronizando ambas transmisiones. Fue una solución bastante sucia, pero aceptable en el tiempo que tuve que hacer el trabajo. No he probado su solución, pero la aceptaré, ya que parece hacer exactamente lo que necesitaba en ese momento. Gracias de todos modos ! – Vahron
La clase VideoView no puede admitir su require.U debe analizar para obtener datos de transmisión de audio (desea) para jugar con la clase AudioTrack en la capa java.
no es cierto. Ver mi respuesta –
Ninguna biblioteca 3 ª parte requerida:
mVideoView.setVideoURI(Uri.parse("")); // set video source
mVideoView.setOnInfoListener(new MediaPlayer.OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
MediaPlayer.TrackInfo[] trackInfoArray = mp.getTrackInfo();
for (int i = 0; i < trackInfoArray.length; i++) {
// you can switch out the language comparison logic to whatever works for you
if (trackInfoArray[i].getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_AUDIO
&& trackInfoArray[i].getLanguage().equals(Locale.getDefault().getISO3Language()) {
mp.selectTrack(i);
break;
}
}
return true;
}
});
Por lo que yo puedo decir - pistas de audio deben ser codificados en el 3 letras ISO 639-2 con el fin de ser reconocidos correctamente.
me puede indicar cómo codificar esas pistas de audio –
ffmpeg es un buen lugar para comenzar –
escribió que la pista de audio debe estar codificada en la 3 carta iso 639-2. ¿Puedes explicar de qué se trata? –
- 1. Múltiples pistas de audio estéreo
- 2. Múltiples pistas de audio para video HTML5
- 3. 3GP/AMR pistas mix/mix
- 4. Android VideoView repetición
- 5. Android :: VideoView dentro de ScrollView
- 6. Android 2.2 problema de VideoView
- 7. Reproduzca múltiples archivos de audio usando AVAudioPlayer
- 8. VideoView Android Guardar RTSP stream
- 9. Obtener mediaPlayer del videoView en Android
- 10. Cambie trakcs de audio para AVURLAsset con AVAssetTracks múltiples de tipo audio
- 11. Redimensionar VideoView
- 12. Edición de audio en Android
- 13. Android MediaPlayer/VideoView con subtítulos (SRT)
- 14. Múltiples salidas de audio en .Net
- 15. Android get Video source path from VideoView
- 16. android, filtros de audio
- 17. cómo mostrar el video de Youtube en android VideoView?
- 18. Android orientación de vídeo retrato mal en VideoView
- 19. Android VideoView: detectar punto de tiempo en video
- 20. ¿Cómo ocultar los controles en VideoView en Android?
- 21. porting pulse audio en Android
- 22. Html Audio en Android Webview
- 23. Retraso de VideoView RTSP
- 24. seekTo en VideoView
- 25. Cambios en VideoView, pantalla completa y orientación - Android
- 26. Poner cualquier Vista sobre una VideoView en Android
- 27. Android transmite audio a otros dispositivos
- 28. la función seekTo() no funciona en VideoView
- 29. Haciendo un bucle de audio en android
- 30. cómo reproducir archivos de audio en android
¿Algún progreso en esto? – runor49
parecía haber avanzado según el comentario de la solución seleccionada. ¿Puedes compartir cómo cumpliste esa tarea? – LostPuppy
Esta es una vieja pregunta, pero hay una solución simple a este problema. Ver mi respuesta –