14

我正在创建一个应用程序,它将 Android 上的录制文件播放到 iphone,反之亦然。

现在我正在使用,

        audioRecorder = new MediaRecorder();
        audioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

使用此代码记录的文件,大小为 85 kb /15 秒,质量很差。

如果我使用,

        audioRecorder = new MediaRecorder();
        audioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
        audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

那么文件大小为 25kb/15 秒,质量比 aac 好得多。但问题是AMR在 iPhone 中无法播放。

因此,请建议具有更好质量、价格合理且也可以在 iPhone 上播放的 Android 录制模式。

4

2 回答 2

18

如果要更改质量,请增加 recorder.setAudioEncodingBitRate(value)。

recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
recorder.setAudioEncoder(MediaRecorder.getAudioSourceMax());
recorder.setAudioEncodingBitRate(16);
recorder.setAudioSamplingRate(44100);
recorder.setOutputFile(path);
recorder.prepare();
recorder.start(); 

编辑:

另一种选择是将转换器添加到您的应用程序中。将 AMR 转换为 AAC。

于 2013-02-20T06:03:07.580 回答
5

这个链接非常有用:Android 支持的媒体格式

本节为我们提供了有关音频和视频格式的更多信息。

于 2013-02-20T05:58:33.090 回答