我编写了一个非常简单的应用程序,它循环播放视频列表并从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,如果音频编解码器不受支持,只需通过它,以便链中的其他东西可以解码它。也许我不完全明白它是如何运作的?非常感谢任何帮助。
答案 0 :(得分:0)
如果设备上没有音频编解码器,那么Android MediaPlayer无法对其进行解码。 LibVLC可以将音频转换为LPCM。此外,我相信ExoPlayer支持重新编码音频,但需要付出更多努力。