在这边求帮助。
代码:        //Mp3Info 是一个自定义对象
        //info.startOffset : 起始位置
        //info.duration : 播放时长
        public void prepareToStart(FileDescriptor mp3File,Mp3Info info)
{
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(mp3File,info.startOffset,info.duration);
mediaPlayer.prepare();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mediaPlayer.setOnCompletionListener(onCompletionListener);
mediaPlayer.setOnErrorListener(onErrorListener);
}但是抛了以下的异常信息:01-15 11:30:09.571: W/System.err(22906): java.io.IOException: Prepare failed.: status=0x80000000
01-15 11:30:09.571: W/System.err(22906):  at android.media.MediaPlayer.prepare(Native Method)
01-15 11:30:09.571: W/System.err(22906):  at com.bws.reading.utils.Mp3Player.prepareToStart(Mp3Player.java:111)
01-15 11:30:09.571: W/System.err(22906):  at com.bws.reading.utils.Mp3Player.prepareToStart(Mp3Player.java:92)
01-15 11:30:09.571: W/System.err(22906):  at com.bws.reading.PlayHome$1.handleMessage(PlayHome.java:160)
01-15 11:30:09.571: W/System.err(22906):  at android.os.Handler.dispatchMessage(Handler.java:99)
01-15 11:30:09.571: W/System.err(22906):  at android.os.Looper.loop(Looper.java:154)
01-15 11:30:09.571: W/System.err(22906):  at android.app.ActivityThread.main(ActivityThread.java:4945)
01-15 11:30:09.571: W/System.err(22906):  at java.lang.reflect.Method.invokeNative(Native Method)
01-15 11:30:09.571: W/System.err(22906):  at java.lang.reflect.Method.invoke(Method.java:511)
01-15 11:30:09.571: W/System.err(22906):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-15 11:30:09.571: W/System.err(22906):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-15 11:30:09.571: W/System.err(22906):  at dalvik.system.NativeStart.main(Native Method)
01-15 11:30:09.571: E/MediaPlayer(22906): Attempt to call getDuration without a valid mediaplayer
01-15 11:30:09.571: E/MediaPlayer(22906): error (-38, 0)androidMP3Media Player

解决方案 »

  1.   

    try
    {
    if (mMediaPlayer == null)
    {
    mMediaPlayer = new MediaPlayer();
    } mMediaPlayer.reset();
    mMediaPlayer.setDataSource(mContext, RingtoneManager
    .getDefaultUri(RingtoneManager.TYPE_RINGTONE));
    mMediaPlayer.prepare();
    mMediaPlayer.start();
    } catch (Exception e)
    {
    }
      

  2.   


    我MP3文件转成了二进制存储到SQLITE数据库中。我想读取数据库来实现播放。就报了以上的错误。不知道这个错误是什么原因引起的?
      

  3.   

    setDataSource (FileDescriptor fd, long offset, long length)
    你查看下这个函数!~~
      

  4.   

    reset之后貌似还要new 一下