从媒体播放器播放歌曲时发生IOException

时间:2015-02-25 08:35:39

标签: android android-mediaplayer ioexception

我想播放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();
                  }
            }
        });

1 个答案:

答案 0 :(得分:0)

您尚未说明"状态" IOE报道。你能给出日志吗?

您是否在清单中拥有外部存储权限?

此外,您的跳过下一个/上一个事件似乎每次都会创建一个新的媒体播放器。如果我是你,我会有一个媒体经理处理游戏,停止,下一个,上一个。 UI事件称之为媒体管理员。在进行另一项任务时,媒体管理器将负责正确关闭打开的MediaPlayer对象,例如先前跳过。