我正在创建一个应用程序,它将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上播放.
解决方法:
如果要更改质量,请增加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.