我的问题部分得到了回答:Which audio format can be recorded and played back by iPhone and Android?
但是,如果可能的话,我想进一步询问。
简化的用例是这样的:客户端应用程序(将是iPhone或Android)将通过内置麦克风录制音频。然后,此音频将发送到服务器。在同一个客户端应用程序中,用户可以看到录制的音频文件列表并进行流式传输以进行播放。
我正在尝试查看录制和流式播放的最佳音频格式。
我有两个问题:
1)从我上面给出的链接来看,似乎iPhone和Android都支持AAC进行录制。但是,我对AAC的变种感到困惑。 Android似乎支持AAC ADTS,而iPhone则有所不同(MPEG-4)。这些都一样吗?
2)我希望能够在iPhone / Android上以相同的格式录制,以便它们可以按原样流式传输到客户端设备。但是,如果服务器上的代码转换是更好的选择,那么它的首选格式是什么?
提前谢谢!
答案 0 :(得分:2)
最后,在iOS上,我最终使用
NSDictionary *recordSettings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:kAudioFormatMPEG4AAC], AVFormatIDKey,
[NSNumber numberWithInt:AVAudioQualityMin], AVEncoderAudioQualityKey,
[NSNumber numberWithInt:16], AVEncoderBitRateKey,
[NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
[NSNumber numberWithFloat:16000.0], AVSampleRateKey,
nil];
在Android上:
_mediaRecorder = new MediaRecorder();
_mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
_mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
_mediaRecorder.setOutputFile(_mediaFile.getAbsolutePath());
_mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
结果文件是AAC文件可在iOS和Android上播放。希望有所帮助!