Android MediaPlayer.create失败

时间:2018-09-10 16:16:47

标签: android nullpointerexception android-mediaplayer

所以我一直在尝试MediaPlayer的一些功能,如果我这样做,它会起作用:

mediaPlayer = MediaPlayer.create(this, R.raw.over);

但是,显然,这仅允许我启动一个文件。 所以,如果我尝试这样的事情:

Uri myUri = Uri.parse("R.raw.over");
mediaPlayer = MediaPlayer.create(this, myUri);

然后不会创建mediaPlayer。任何方法调用

mediaPlayer.start()

引发NullPointerException。

我的想法是,如果我可以使用它,那么最终我可以从包含URI的ArayList播放文件。

2 个答案:

答案 0 :(得分:1)

请尝试应用此代码:

Uri myUri = ....; // initialize Uri here
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(getApplicationContext(), myUri);
mediaPlayer.prepare();
mediaPlayer.start();

答案 1 :(得分:1)

如果您要播放的所有文件都位于原始文件夹中,则无需解析Uri,您只需将它们存储在数组中并在该数组中播放即可:

int[] files = {R.raw.over, R.raw.over1, R.raw.over2}
mediaPlayer = MediaPlayer.create(this, files[0]);