我想使用AudioStreamBasicDescription
类读取PCM编码的16位单声道wav文件,我目前正在使用以下代码创建格式:
AudioStreamBasicDescription format;
format.mSampleRate = 44100;
format.mFormatID = kAudioFormatLinearPCM;
format.mFormatFlags = (kLinearPCMFormatFlagIsBigEndian | kAudioFormatFlagIsPacked | kLinearPCMFormatFlagIsSignedInteger);
format.mBitsPerChannel = 16;
format.mChannelsPerFrame = 1;
format.mFramesPerPacket = 1;
format.mBytesPerPacket = 2;
然后我在ExtAudioFileSetProperty
对象上使用ExtAudioFileRef
方法:
err = ExtAudioFileSetProperty(eaf, kExtAudioFileProperty_ClientDataFormat, sizeof(format), &format);
if(noErr != err)
{
// handle error
NSError *error = [NSError errorWithDomain:NSOSStatusErrorDomain code:err userInfo:nil];
NSLog(@"%@", error);
}
打印错误如下:
2015-05-20 19:26:12.773 MusicSense[33442:7245119] Error Domain=NSOSStatusErrorDomain Code=-50 "The operation couldn’t be completed. (OSStatus error -50.)"
我相信我的AudioStreamBasicDescriptor
有一个错误,但我不知道在哪里。我尝试了其他各种选项,但我得到了同样的错误。在定义音频格式时我是否犯了错误,或者还有别的东西?