Android MediaPlayer准备

时间:2018-09-10 23:33:56

标签: android android-mediaplayer

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

enter image description here

但不幸的是prepare()方法不能解决以下错误:

  

W / System.err:java.io.IOException:准备失败。:status = 0x1               在android.media.MediaPlayer._prepare(本机方法)               在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.Activity.performCreate(Activity.java:7127)               在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)               在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)               在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)               在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)               在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)               在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)               在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1808)               在android.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)               在java.lang.reflect.Method.invoke(本机方法)               在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:493)               在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

2 个答案:

答案 0 :(得分: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()将由内部播放器调用   引擎和对象将被转移到“错误”状态。

开始类似这样的简单操作,然后再开始使用其他功能:

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对您可能有用。

答案 1 :(得分:0)

经过大量检查后,我发现问题出在SdkVersion,我将其从 将compileSdkVersion 28转换为compileSdkVersion 27,则可以正常工作。感谢您的回答。