Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用MediaRecorder在Android中录制原始AAC音频文件?AAC#U ADTS不';行不通_Android_Mediarecorder_Aac_Adts_Outputformat - Fatal编程技术网

如何使用MediaRecorder在Android中录制原始AAC音频文件?AAC#U ADTS不';行不通

如何使用MediaRecorder在Android中录制原始AAC音频文件?AAC#U ADTS不';行不通,android,mediarecorder,aac,adts,outputformat,Android,Mediarecorder,Aac,Adts,Outputformat,我正在使用Android MediaRecorder录制AAC编码的音频文件。将输出格式设置为MPEG-4效果很好。但由于我的音频播放器既不支持MPEG-4,也不支持3GP,我尝试使用输出格式AAC_ADTS获取原始AAC文件,Android从API级别16开始就支持这种格式 mRecorder = new MediaRecorder(); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mRecorder

我正在使用Android MediaRecorder录制AAC编码的音频文件。将输出格式设置为MPEG-4效果很好。但由于我的音频播放器既不支持MPEG-4,也不支持3GP,我尝试使用输出格式AAC_ADTS获取原始AAC文件,Android从API级别16开始就支持这种格式

    mRecorder = new MediaRecorder();
    mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
    mRecorder.setOutputFile(mFileName);
    mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
这就是我被卡住的地方。MediaRecorder创建了一个文件,但我不能用任何播放器播放该文件(Android的MediaPlayer、Windows Media player和我上面提到的音频播放器都不能播放我在网上找到的ADTS AAC文件)


我做错什么了吗?AAC_ADTS输出格式是否是推荐的格式?有没有办法获取ADIF AAC文件?

使用未经处理而不是麦克风。

您找到解决方案了吗?我可以使用您的音频源、输出格式和音频编码器进行录制。使用AIMP和Windows media player以及我手机上的播放机,该文件可以正常播放。我没有找到任何解决方案使用AAC_ADTS作为输出格式。相反,我使用的是MPEG_4和另一个音频播放器。我也有同样的问题。似乎生成的文件是AAC主配置文件而不是AAC LC-至少ffprobe告诉我这一点。这些文件没有什么问题,只是格式不对。AudioEncoder.AAC应根据文档生成AAC LC。我同意Kirby的观点,并使用OutputFormat.MPEG\u 4欢迎使用SO。如果你编辑了你的答案来解释你为什么提出这个建议,这将是很有帮助的。