使用Android MediaPlayer播放ac3时没有音频

时间:2016-09-26 17:26:56

标签: android audio surround dolby

我编写了一个非常简单的应用程序,它循环播放视频列表并从nodejs服务器中流式传输。

我只是使用Android MediaPlayer API进行基本的视频流设置,除了环绕声之外,一切都很棒。

使用杜比数字(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 个答案:

答案 0 :(得分:0)

如果设备上没有音频编解码器,那么Android MediaPlayer无法对其进行解码。 LibVLC可以将音频转换为LPCM。此外,我相信ExoPlayer支持重新编码音频,但需要付出更多努力。