我试着让用户打开一个音频文件并播放这个文件。但是,MediaPlayer.create()
方法返回null
。这里是我的代码:android:mediaplayer.create()返回null
MediaPlayer mediaPlayer;
public void start(View v) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("audio/*");
startActivityForResult(intent,1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK) {
Uri uri = data.getData();
mediaPlayer = MediaPlayer.create(this,uri);
//startThread();
mediaPlayer.start();
} else {
mediaPlayer.start();
}
}
我试过用mp3文件,我的设备没有问题与其他玩家玩。 Uri我看起来像这样"content://media/external/audio/media/137650"
我在做什么错了?
create()API如果以某种方式失败,则返回null。 在这种情况下,原因是由于损坏的MP3文件。你尝试过不同的文件吗? –
确保您具有'READ_EXTERNAL_STORAGE'权限。这反过来又要求您申请运行时权限,如果您的'targetSdkVersion'为23或更高,并且您正在测试Android 6.0或更高版本。您也可以检查LogCat中是否有任何相关消息,因为“MediaPlayer”倾向于在警告严重性的情况下记录东西并且不会抛出异常。另外,不要在你的'else'块中调用'mediaPlayer.start()',因为你还没有初始化'mediaPlayer'。 – CommonsWare
是的,正如我所说,其他玩家可以播放这些文件。他们肯定没有腐败 – Ginso