首页 文章

Android MediaPlayer准备

提问于
浏览
-2

我正在尝试使用Android MediaPlayer API播放mp3文件如下,

enter image description here

但不幸的是,prepare()方法不适用于以下错误:

W / System.err:java.io.IOException:准备失败:状态= 0x1在android.media.MediaPlayer._prepare(Native Method)的android.media.MediaPlayer.prepare(MediaPlayer.java:1282)com . baraka.activity.HfzHome.onCreate(HfzHome.java:47)在android.app.Activity.performCreate(Activity.java:7136)09-11 02:17:38.560 24146-24146 / com.baraka W / System.err:在android.app.A活动中的android.app.Anstrumentation.callActivityOnCreate(Instrumentation.java:1271)的android.app.A.运行时,在Android.app.A活动中运行android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)的android.app.Activity.performCreate(Activity.java:7127) . Activity.Thread.handleLaunchActivity(ActivityThread.java:3048)位于android.app.servertransaction的android.app.servertransaction.e活动时,我会在Android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)上的android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) .TransactionExecutor.execute(TransactionExecutor.java:68)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1808)atroi d.os.Handler.dispatchMessage(Handler.java:106)在android.os.Looper.loop(Looper.java:193)09-11 02:17:38.561 24146-24146 / com.baraka W / System.err:在android.app.ActivityThread.main(ActivityThread.java:6669)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:493)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

2 回答

  • 0

    删除 mediaplayer.reset()

    在调用reset()之后,新构造的MediaPlayer对象与MediaPlayer对象之间存在微妙但重要的区别 . 调用getCurrentPosition(),getDuration(),getVideoHeight(),getVideoWidth(),setAudioAttributes(AudioAttributes),setLooping(boolean),setVolume(float,float),pause(),start()等方法是一个编程错误 . 两种情况下,处于空闲状态的,stop(),seekTo(long,int),prepare()或prepareAsync() . 如果在构造MediaPlayer对象后立即调用这些方法中的任何一个,则内部播放器引擎将不会调用用户提供的回调方法OnErrorListener.onError(),并且对象状态保持不变;但是如果在reset()之后立即调用这些方法,则内部播放器引擎将调用用户提供的回调方法OnErrorListener.onError(),该对象将被转换为Error状态 .

    在你开始搞乱其他功能之前,先从这样简单的事情开始,让它工作:

    MediaPlayer mediaPlayer = new MediaPlayer();
    try {
        String website = "website url here";//put ur url here
        mediaPlayer.setDataSource(website);
        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mediaPlayer.prepare();
    }
    

    一个好的,旧的tutorial可能对你有用 .

  • 0

    经过很多的调整,我发现问题出现在SdkVersion中,我将它从compileSdkVersion 28下载到compileSdkVersion 27中,然后它工作正常 . thx为你的答案 .

相关问题