Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – setDataSourceFD失败:状态= 0x80000000在三星手机上播放aac文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要录制和播放音频文件,我使用这两段代码

用于录制:

private void initRecorder() {
    try {
        mRecorder = new MediaRecorder();
        mRecorder.setAudiosource(MediaRecorder.Audiosource.MIC);
        mRecorder.setOutputFormat(MediaRecorder.outputFormat.AAC_ADTS);
        mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
        mRecorder.setOutputFile(RECORD_file_name);
        mRecorder.prepare();
        mRecorder.start();
    } catch (IllegalStateException | IOException E) {
        Utility.e("initRecorder: " + e.getmessage());
    }
}

对于玩:

try {
        FileDescriptor fd = null;
        FileInputStream fis = new FileInputStream(RECORD_file_name);
        fd = fis.getFD();

        if (fd != null) {
            mMediaPlayer = new MediaPlayer();
            mMediaPlayer.setDatasource(fd);
            mMediaPlayer.setAudioStreamType(Au@L_929_3@manager.STREAM_MUSIC);
            mMediaPlayer.prepare();

            mMediaPlayer.setOnPreparedListener(new MediaPlayer.onPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {
                    if (mPlayTime > 0) {
                        mMediaPlayer.seekTo(mPlayTimE);
                    }
                    mMediaPlayer.start();
                    setStatus(STATUS_PLAYING);
                }
            });

            mMediaPlayer.setOnCompletionListener(new MediaPlayer.onCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                    mMediaPlayer.release();
                    RecordMomentActivity.this.mPlayTime = 0;
                    setStatus(STATUS_NOT_PLAYING);
                }
            });
        }
    } catch (Exception E) {
        Utility.e("Exception: " + e.getmessage());
        setStatus(STATUS_NOT_PLAYING);
    }
}

代码在Nexus 5(Android 6.0)和LG G3与Android 5.0上运行良好,录制和播放音频.但是当我使用三星手机时,我得到了例外:

有人遇到这个问题吗?并知道我应该如何处理它?如果没有,我可以用来录制和播放音频文件吗?

解决方法

如果文件已损坏或处理的MediaPlayer服务未正确处理,则会发生这种情况.

看一些例子:

MediaPlayer.setDataSource causes IOException for valid file

Exception when calling setDataSource(FileDescriptor) method (failed.: status=0x80000000)

此外,可能是录制后文件未正确关闭且播放器出现故障.

大佬总结

以上是大佬教程为你收集整理的android – setDataSourceFD失败:状态= 0x80000000在三星手机上播放aac文件全部内容,希望文章能够帮你解决android – setDataSourceFD失败:状态= 0x80000000在三星手机上播放aac文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。