我已经阅读了很多关于这个问题的帖子,但没有人提出解决方案 问题。
我想在iOS上录制一个音频文件,可以由Android设备发送和播放,而不必在服务器上对文件进行转码。
我知道iOS只支持录制到某些类型,Android只能播放如下所示的某些类型:
AVAudioRecorder supported formats
但是,根据这个,如果我输出一个带有以下设置的.m4a文件,它应该可以工作:
AudioChannelLayout channelLayout;
memset(&channelLayout, 0, sizeof(AudioChannelLayout));
channelLayout.mChannelLayoutTag = kAudioChannelLayoutTag_Stereo;
recordSettings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey,
[NSNumber numberWithFloat:16000.0], AVSampleRateKey,
[NSNumber numberWithInt:1], AVNumberOfChannelsKey,
[NSNumber numberWithInt:32000], AVEncoderBitRateKey,
[NSData dataWithBytes:&channelLayout length:sizeof(AudioChannelLayout)], AVChannelLayoutKey,
nil];
但它不起作用。
现在我注意到的一件事是,如果我尝试打开我在网络(我的电脑)上录制的iphone文件,它会将其识别为快速文件 AVAudioRecorder将文件的outputfiletype设置为quicktime格式 而不是@“public.audio”或其他东西。
那么也许有一种方法可以简单地改变AVAudioRecorder创建的文件的文件类型?
无论哪种方式,有没有人成功地解决了这个问题,如果是这样的话?
答案 0 :(得分:0)
在我的情况下,我有相同的音频编码,但我们用.3gp扩展名保存它,它可以在Android和iOS上重现。希望它有所帮助