0

我编写了一个非常简单的应用程序,它遍历视频列表并从 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,如果不支持音频编解码器,会简单地通过它,以便链下的其他东西可以解码它。也许我不完全理解它是如何工作的?任何帮助是极大的赞赏。

4

1 回答 1

0

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

于 2016-09-26T17:45:46.240 回答