AVAssetWriterInput输出设置无法呈现有效的NSData

时间:2011-06-17 21:28:42

标签: iphone ios audio avassetwriter

我正在使用AVAssetWriterInput从用户那里获取一个mp3文件,并通过电子邮件发送(仅限DRM)。我使用PCM时可以使用该程序,但是当我尝试使用mp3或m4a或者caf时,我要么得到一个不起作用的文件,要么我得到空数据。我认为这是由于我的输出设置。下面没有绘制数据的输出设置。我愿意改变所有这一切。谢谢!

    NSDictionary *outputSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                                [ NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey,
                                [ NSNumber numberWithInt: 1 ], AVNumberOfChannelsKey,
                                [ NSNumber numberWithFloat: 44100.0 ], AVSampleRateKey,
                                [ NSData dataWithBytes: &channelLayout length: sizeof( AudioChannelLayout ) ], AVChannelLayoutKey,
                                [ NSNumber numberWithInt: 64000 ], AVEncoderBitRateKey,
                                nil];

1 个答案:

答案 0 :(得分:2)

Apple没有为编写 mp3文件提供API,可能是因为mp3只是无头数据包而只是写出原始数据包工作正常。

至于在m4a / caf容器中写出AAC数据,我不确定 - 但AVEncoderBitRateKey绝对不应该存在,因为你没有编码任何东西 - 你只是传递数据。那么为什么不忘记AVAssetWriter并使用带有直通预设的AVAssetExportSession?