使用Mediaplayer无法在android中播放m4a音频文件

Eru*_*rum 5 android m4a android-mediaplayer

使用mediaplayer代码播放audio文件,无法播放.m4a扩展音频文件

错误:

java.io.IOException:准备失败。:status = 0x1 01-01 14:54:30.399 8170-8170 / com.abc.prjnameW / System.err:位于android.media.MediaPlayer.prepare(本机方法)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:位于com.abc.prjname.activities.detail.AudioDetailActivity $ 2.onClick(AudioDetailActivity.java:192)01-01 14:54:30.399 8170-8170 / com.abc。 prjnameW / System.err:在android.view.View.performClick(View.java:4753)01-01 14:54:30.409 8170-8170 / com.abc.prjnameW / System.err:在android.view.View $ PerformClick.run(View.java:19562)01-01 14:54:30.409 8170-8170 / com.abc.prjnameW / System.err:位于android.os.Handler.handleCallback(Handler.java:733)01-01 14:54:30。409 8170-8170 / com.abc.prjnameW / System.err:位于android.os.Handler.dispatchMessage(Handler.java:95)01-01 14:54:30.409 8170-8170 / com.abc.prjnameW / System。错误:在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 :位于com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1291)01-01 14:54:30.409 8170-8170 / com.abc.prjnameW / System.err:位于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(本机方法)

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);
        }
    }
Run Code Online (Sandbox Code Playgroud)