从iPhone和iPhone录制的最佳音频格式Android客户端和流回iPhone / Android进行播放?

时间:2013-02-01 08:57:25

标签: android iphone audio

我的问题部分得到了回答: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上以相同的格式录制,以便它们可以按原样流式传输到客户端设备。但是,如果服务器上的代码转换是更好的选择,那么它的首选格式是什么?

提前谢谢!

1 个答案:

答案 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上播放。希望有所帮助!