java - 无法使用 java.io.IOException : setDataSourceFD failed. : status=0x80000000 in 2. 3.3 android 平板电脑创建媒体播放器

标签 java android

hello, i am new in android please help me, my audio file format is correct .mp4 and mp3, then also sometime its give me this error java.io.IOException: setDataSourceFD failed.: status=0x80000000 or sometime java.lang.NullPointerException.

public class Music implements OnCompletionListener    {

   public static boolean isPlaying=false;

   public static   MediaPlayer mp=null;

public static void playGeneric(int name, final ImageButton button,final ImageButton pervious,Context context) {

    button.setEnabled(false);
    button.setClickable(false);
    pervious.setEnabled(false);
    pervious.setClickable(false);
        try{
            if(isPlaying==true)
            {
                stopplaying();
            }
            if(isPlaying==false)
            {}

              mp = MediaPlayer.create(context, name);
                mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                    @Override
                    public void onPrepared(MediaPlayer arg0) {

                        mp.start(); 
                        isPlaying=true;

                    }

                });
          mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

                @Override
                public void onCompletion(MediaPlayer mp) {
                    // TODO Auto-generated method stub

                    mp.release();
                    isPlaying=false;
                    System.out.println("Object released");
                    button.setEnabled(true);
                    button.setClickable(true);
                    pervious.setEnabled(true);
                    pervious.setClickable(true);
                }
            });




    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }catch (SecurityException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        e.getMessage();
    } catch (NullPointerException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        e.getMessage();
    }

}

public static void stopplaying() {
        if (mp != null) {
            mp.stop();
            mp.release();
            mp = null;
        }

    }

see my LogCat

10-15 15:36:19.061: E/MediaPlayer(5018): Unable to to create media player
10-15 15:36:19.061: D/MediaPlayer(5018): create failed:
10-15 15:36:19.061: D/MediaPlayer(5018): java.io.IOException: setDataSourceFD failed.: status=0x80000000
10-15 15:36:19.061: D/MediaPlayer(5018):    at android.media.MediaPlayer.setDataSource(Native Method)
10-15 15:36:19.061: D/MediaPlayer(5018):    at android.media.MediaPlayer.create(MediaPlayer.java:666)
10-15 15:36:19.061: D/MediaPlayer(5018):    at com.rogerscenter.LearnReadWriteSpell.Utility.Music.playGeneric(Music.java:102)
10-15 15:36:19.061: D/MediaPlayer(5018):    at com.rogerscenter.LearnReadWriteSpell.LetterCategory.Letter_Lesson1_activity.onClick(Letter_Lesson1_activity.java:702)
10-15 15:36:19.061: D/MediaPlayer(5018):    at android.view.View.performClick(View.java:2485)
10-15 15:36:19.061: D/MediaPlayer(5018):    at android.view.View$PerformClick.run(View.java:9153)
10-15 15:36:19.061: D/MediaPlayer(5018):    at android.os.Handler.handleCallback(Handler.java:587)
10-15 15:36:19.061: D/MediaPlayer(5018):    at android.os.Handler.dispatchMessage(Handler.java:92)
10-15 15:36:19.061: D/MediaPlayer(5018):    at android.os.Looper.loop(Looper.java:123)
10-15 15:36:19.061: D/MediaPlayer(5018):    at android.app.ActivityThread.main(ActivityThread.java:3647)
10-15 15:36:19.061: D/MediaPlayer(5018):    at java.lang.reflect.Method.invokeNative(Native Method)
10-15 15:36:19.061: D/MediaPlayer(5018):    at java.lang.reflect.Method.invoke(Method.java:507)
10-15 15:36:19.061: D/MediaPlayer(5018):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-15 15:36:19.061: D/MediaPlayer(5018):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-15 15:36:19.061: D/MediaPlayer(5018):    at dalvik.system.NativeStart.main(Native Method)
10-15 15:36:19.061: W/System.err(5018): java.lang.NullPointerException
10-15 15:36:19.061: W/System.err(5018):     at com.rogerscenter.LearnReadWriteSpell.Utility.Music.playGeneric(Music.java:103)
10-15 15:36:19.061: W/System.err(5018):     at com.rogerscenter.LearnReadWriteSpell.LetterCategory.Letter_Lesson1_activity.onClick(Letter_Lesson1_activity.java:702)
10-15 15:36:19.061: W/System.err(5018):     at android.view.View.performClick(View.java:2485)
10-15 15:36:19.061: W/System.err(5018):     at android.view.View$PerformClick.run(View.java:9153)
10-15 15:36:19.061: W/System.err(5018):     at android.os.Handler.handleCallback(Handler.java:587)
10-15 15:36:19.061: W/System.err(5018):     at android.os.Handler.dispatchMessage(Handler.java:92)
10-15 15:36:19.061: W/System.err(5018):     at android.os.Looper.loop(Looper.java:123)
10-15 15:36:19.061: W/System.err(5018):     at android.app.ActivityThread.main(ActivityThread.java:3647)
10-15 15:36:19.061: W/System.err(5018):     at java.lang.reflect.Method.invokeNative(Native Method)
10-15 15:36:19.061: W/System.err(5018):     at java.lang.reflect.Method.invoke(Method.java:507)
10-15 15:36:19.061: W/System.err(5018):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-15 15:36:19.061: W/System.err(5018):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-15 15:36:19.061: W/System.err(5018):     at dalvik.system.NativeStart.main(Native Method)

i can't understand sometime its work perfect,sometime not. i Used this method in activities static way.

最佳答案

java.io.IOException: setDataSourceFD failed - 音乐文件似乎以一种奇怪的 MediaPlayer 格式编码,因此请尝试将其转换为 OGG 格式。

关于java - 无法使用 java.io.IOException : setDataSourceFD failed. : status=0x80000000 in 2. 3.3 android 平板电脑创建媒体播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19379207/

相关文章:

android - 为什么我的 Realm 回收 View 不显示任何数据?

java - 如何在不使用 OOzie 的情况下创建 Hadoop 作业链

java - 跨职能管理交易

java - 使用 TableView.CONSTRAINED_RESIZE_POLICY 时 TableView header 宽度错误

python - 构建 kivy 应用程序时出错 : ModuleNotFoundError: No module named 'typing_extensions'

java - 如何获取Android手机的Radio类型(GSM,CDMA,WCDMA,LTE)

java - Riak Java客户端编译失败

java - 如何在小程序以外的浏览器上显示动态图像

android - 如何使用 RelativeLayout 将按钮对齐到 ImageView 的右侧

eclipse 中的 android avd 虚拟内存设置