2016-09-26 160 views
0

我已经编写了一个非常简单的应用程序,该应用程序通过视频列表进行循环,并通过nodejs服务器对它们进行流式处理。使用Android MediaPlayer传输ac3时没有音频

我只是在使用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

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

+0

我知道该设备支持它,因为我使用VLC进行了测试。 Ac3对此表现良好。 – Euroclydon37

+0

什么是设备? – Redshirt

+0

这是索尼Bravia电视。我已将它连接到Sony Receiver。此外,aac在Android的开发者网站上列出,原生支持5.1环绕声,但只是让立体声让我困惑。 Ffmpeg确认该文件是5.1。 – Euroclydon37

相关问题