我正在使用 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);
Run Code Online (Sandbox Code Playgroud)
这是我卡住的地方。MediaRecorder 创建了一个文件,但我无法使用任何播放器播放该文件(Android 的 MediaPlayer、Windows Media Player 和我上面提到的音频播放器都无法播放,它能够播放我在网上找到的 ADTS AAC 文件) .
难道我做错了什么?AAC_ADTS 输出格式甚至是值得推荐的格式吗?有没有办法获得 ADIF AAC 文件?
我有一个复合组件,这是它的摘录。
<h:outputFormat id="output" value="{0} / {1} / {2}" rendered="#{cc.attrs.readOnly}" styleClass="#{cc.attrs.styleClass}">
<f:param value="#{empty cc.attrs.value1 ? '-' : cc.attrs.value1}" />
<f:param value="#{empty cc.attrs.value2 ? '-' : cc.attrs.value2}" />
<f:param value="#{empty cc.attrs.value3 ? '-' : cc.attrs.value3}"/>
</h:outputFormat>
Run Code Online (Sandbox Code Playgroud)
如果我想使用格式化value3 <f:convertNumber>,我该怎么做?