我正在创建一个应用程序,它将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中无法播放。
所以请建议Android的录制架构具有更好的质量,更实惠的尺寸,也可以在iPhone上播放。
答案 0 :(得分:16)
如果要更改质量,请增加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。
答案 1 :(得分:4)
此链接非常有用:Android supported media formats
本节为我们提供了有关音频和视频格式的更多信息。