我想播放Android MediaStore中的一首歌。我知道id 1834绝对正确..在调试时我发现了
mp.prepare();
IOException occurs
。我该如何解决这个问题。
prevSong.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
try
{
MediaPlayer mp = new MediaPlayer();
Uri fileUri = ContentUris.withAppendedId(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 1834);
mp.setDataSource(context, fileUri);
// mMediaPlayer.reset();
// mp.setDataSource(context, uri);
mMediaPlayer.prepare();
mp.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
答案 0 :(得分:0)
您尚未说明"状态" IOE报道。你能给出日志吗?
您是否在清单中拥有外部存储权限?
此外,您的跳过下一个/上一个事件似乎每次都会创建一个新的媒体播放器。如果我是你,我会有一个媒体经理处理游戏,停止,下一个,上一个。 UI事件称之为媒体管理员。在进行另一项任务时,媒体管理器将负责正确关闭打开的MediaPlayer对象,例如先前跳过。