android mediaplayer.create返回null

时间:2016-06-05 11:37:38

标签: android

我试图从URI播放声音使用MediaPlayer Class但是当我尝试这个我的应用程序崩溃然后我注意到mediaplayer.create()函数返回null我该怎么办才能解决这个问题?`

mediaplayer=MediaPlayer.create(this,Uri.parse("http://example.com/files/music.mp3"));
if (mediaplayer==null){
    Toast.makeText(this,"media player is null",Toast.LENGTH_LONG).show();
        }
else
    mediaplayer.start();

现在,当我运行我的应用程序时,它显示Toast消息"媒体播放器为空"

1 个答案:

答案 0 :(得分:0)

我在MediaPlayer上遇到过类似的问题

create()方法有时会返回null

我尝试过的一些文件类型是mp3,wav和m4a

我知道他们没有腐败,因为我可以用winamp / itunes播放它们

虽然文档确实说它支持这些文件类型,但事实证明它实际上不是

我注意到当音频文件(不管文件类型)是10Mb还是更多时,MediaPlayer将返回null。它让我得出结论,MediaPlayer无法播放超过某些比特率的文件。大尺寸=更好的质量。

所以我的解决方案是:将所有内容转换为128kbps比特率的.mp3

编辑: 看起来问题出在我的模拟器上,当我使用真正的Android设备时,一切都很完美。确保您在真正的Android设备上进行测试。或者在我的情况下,我创建了另一个具有更好规格的AVD配置文件,它可以正常工作