Нет звука при потоковой передаче 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 поддерживает запись звука, но требует гораздо больше усилий.

Другие вопросы по тегам