2

我的问题部分回答了:iPhone和Android可以录制和播放哪种音频格式?

但是,如果可能的话,我想进一步询问。

简化的用例是这样的:客户端应用程序(将是 iPhone 或 Android)将通过内置麦克风录制音频。然后该音频将被发送到服务器。从同一个客户端应用程序中,用户可以看到录制的音频文件列表并流回播放。

我正在尝试查看录制和流式播放的最佳音频格式。

我有两个问题:

1)从我上面给出的链接来看,iPhone和Android似乎都支持AAC进行录制。但是,我对 AAC 的变体感到困惑。Android 似乎支持 AAC ADTS,而 iPhone 则有所不同(MPEG-4)。这些是一样的吗?

2) 我希望能够在 iPhone/Android 上以相同的格式录制,以便它们可以按原样流式传输到客户端设备。但是,如果在服务器上转码是更好的选择,那么首选的格式是什么?

先感谢您!

4

1 回答 1

3

最后,在 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];

在安卓上:

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

于 2013-11-22T08:25:16.283 回答