我想从AAC格式转换/保存音频文件到AIFF音频格式。默认情况下,我正在尝试使用LineraPCM。。但音频格式以AAC格式保存。。我想用AIFF格式保存音频文件。这是我的代码
NSDictionary *outputSettings = [NSDictionary dictionaryWithObjectsAndKeys: NSNumber numberWithInt:kAudioFormatLinearPCM,AVFormatIDKey,NSNumber numberWithFloat:44100.0,AVSampleRateKey,NSNumber numberWithInt:2,AVNumberOfChannelsKey,NSData dataWithBytes:&channelLayout length长度:sizeof(AudioChannelLayout),AVChannelLayoutKey,NSNumber numberWithInt:16,AVLinearPCMBitDepthKey,NSNumber numberWithBool:NO,AVLinearPCMIsNonInterleaved,NSNumber nil:NO,AVLinearPCMIsFloatKey,NSNumber numberWithBool:NO,AVLinearPCMIsBigEndianKey,nil];
是否有人可以建议使用kAudioFormat或音频设置来编写文件,使用AVAssetWriterInput将其保存为AIFF音频格式?
发布于 2014-02-19 08:27:18
到目前为止,我已经和AVAssetWriter合作过了,但我认为它基本上是一种格式描述,就像使用ASBD的那样。
例如,为AIFF定义的AudioBasicStreamDescription示例如下:
aiffFormat.mSampleRate = sampleRate;aiffFormat.mFormatID = kAudioFormatLinearPCM;aiffFormat.mBytesPerPacket = 2;aiffFormat.mFramesPerPacket = 1;aiffFormat.mBytesPerFrame = 2;aiffFormat.mChannelsPerFrame = 2;/ for立体声aiffFormat.mBitsPerChannel = 16;aiffFormat.mFormatFlags = (kLinearPCMFormatFlagIsBigEndian溶胶kAudioFormatFlagIsPacked kLinearPCMFormatFlagIsSignedInteger);aiffFormat.mBitsPerChannel =sizeof(浮子)* 8;aiffFormat.mBytesPerFrame = aiffFormat.mChannelsPerFrame * sizeof(Float32);aiffFormat.mBytesPerFrame=Float32*;
在您的上述代码中,必须将大号设置为“是”。正如前面提到的,我从来没有使用过AVAssetWriter,所以我不确定需要设置哪些参数,或者不需要设置哪些参数,但是使用上面的示例流描述,运行应该不会太困难。
https://stackoverflow.com/questions/21856074
复制相似问题