用于录制:
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(AudioManager.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上运行良好,录制和播放音频.但是当我使用三星手机时,我得到了例外:
setDataSourceFD Failed.: status=0x80000000
有人遇到这个问题吗?并知道我应该如何处理它?如果没有,我可以用来录制和播放音频文件吗?
解决方法 如果文件已损坏或处理的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文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)