Нет звука при потоковой передаче AC3 с Android MediaPlayer
Я написал очень простое приложение, которое просматривает список видео и передает их с сервера nodejs.
Я просто настраиваю основную потоковую передачу видео с помощью Android MediaPlayer API, и все отлично работает, кроме объемного звука.
С Dolby Digital (ac3) я вообще не получаю аудио. Я попробовал AAC 5.1 и получил аудио, но это был преобразователь с понижением частоты на стерео.
public void setupVideoView(Uri videoAddress) {
emVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
// Prepared Listener
}
});
emVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
// Error Listener
}
});
emVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
setupVideoView(Uri.parse(video_url));
}
});
emVideoView.setVideoURI(videoAddress);
}
Я искал несколько часов и не смог найти решение. Я ожидаю, что Android, если аудио кодек не поддерживается, просто пропустит его, чтобы что-то еще в цепочке могло его декодировать. Может быть, я не совсем понимаю, как это работает? Любая помощь с благодарностью.
1 ответ
Если аудиокодек отсутствует на устройстве, Android MediaPlayer не сможет его декодировать. LibVLC может конвертировать аудио в LPCM. Кроме того, я считаю, что ExoPlayer поддерживает запись звука, но требует гораздо больше усилий.