我正在尝试使用Android的OpenSL ES实现创建一个实时通信应用程序(SIP,如Skype等)。
问题是,我需要通过通信播放一些WAV音频文件(我使用Java中的MediaPlayer进行此操作)。
当然,当OpenSL ES未运行时,mediaplayer工作正常。但是当它出现时,一切都会崩溃:结果在各个设备之间存在很大的不一致。
我创建了一个example project来演示这个问题,如果你在启动引擎之前播放声音(pweeet按钮),它就可以了。如果您之后播放,则取决于设备。
以下是我的观察:
当然,上面的任何内容都不是我需要的解决方案......
......所有这些都在同一时间。
最后,我应该指出,在Galaxy S4中,当我将从网络收到的帧排队时,OpenSL ES会播放它如此响亮且饱和,以至于应用程序无法使用。所以我认为这个问题不在MediaPlayer Java方面。
答案 0 :(得分:0)
感谢Michael的评论,我通过设置音频模式IN_COMMUNICATION解决了我的问题。