使用mediaplayer
代码播放audio
个文件,无法播放.m4a
个扩展音频文件
错误:
java.io.IOException:准备失败:status = 0x1 01-01 14:54:30.399 8170-8170 / com.abc.prjnameW / System.err:at android.media.MediaPlayer.prepare(Native Method) 01-01 14:54:30.399 8170-8170 / com.abc.prjnameW / System.err:at com.abc.prjname.activities.detail.AudioDetailActivity.playAudio(AudioDetailActivity.java:477) 01-01 14:54:30.399 8170-8170 / com.abc.prjnameW / System.err:at com.abc.prjname.activities.detail.AudioDetailActivity $ 2.onClick(AudioDetailActivity.java:192) 01-01 14:54:30.399 8170-8170 / com.abc.prjnameW / System.err:at android.view.View.performClick(View.java:4753) 01-01 14:54:30.409 8170-8170 / com.abc.prjnameW / System.err:at android.view.View $ PerformClick.run(View.java:19562) 01-01 14:54:30.409 8170-8170 / com.abc.prjnameW / System.err:at android.os.Handler.handleCallback(Handler.java:733) 01-01 14:54:30.409 8170-8170 / com.abc.prjnameW / System.err:at android.os.Handler.dispatchMessage(Handler.java:95) 01-01 14:54:30.409 8170-8170 / com.abc.prjnameW / System.err:在android.os.Looper.loop(Looper.java:146) 01-01 14:54:30.409 8170-8170 / com.abc.prjnameW / System.err:在android.app.ActivityThread.main(ActivityThread.java:5635) 01-01 14:54:30.409 8170-8170 / com.abc.prjnameW / System.err:at java.lang.reflect.Method.invokeNative(Native Method) 01-01 14:54:30.409 8170-8170 / com.abc.prjnameW / System.err:at java.lang.reflect.Method.invoke(Method.java:515) 01-01 14:54:30.409 8170-8170 / com.abc.prjnameW / System.err:at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1291) 01-01 14:54:30.409 8170-8170 / com.abc.prjnameW / System.err:at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 01-01 14:54:30.409 8170-8170 / com.abc.prjnameW / System.err:at dalvik.system.NativeStart.main(Native Method)
public void playAudio() {
if (mediaPlayer == null) {
mediaPlayer = new MediaPlayer();
}
if (!TextUtils.isEmpty(mediaFileUrl)) {
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(mediaFileUrl);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.prepare();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
if (mediaPlayer != null) {
mediaPlayer.stop();
mediaPlayer.release();
mediaPlayer = null;
audioLength = 0;
ivActionPlayVideo.setImageDrawable(ContextCompat.getDrawable(AudioDetailActivity.this, android.R.drawable.ic_media_play));
adjustRatingForLoggedInUser();
ivViewTracker.setVisibility(View.VISIBLE);
ivRecordingGifMic.setVisibility(View.GONE);
}
}
});
} else {
Utils.LOG(AudioDetailActivity.this,AudioDetailActivity.class.getName(), "mediaFileUrl:" + mediaFileUrl);
}
}