和文件操作一样,我们也可以获取和设置音频队列的属性。
1,AudioQueueGetProperty
函数功能:获取音频队列的属性值。
函数原型:
OSStatus AudioQueueGetProperty (
AudioQueueRef inAQ,
AudioQueuePropertyID inID,
void *outData,
UInt32 *ioDataSize
);
参数解析:
inAQ:想要获取属性的音频队列。
inID:想要获取的属性类型ID。
outData:获取的属性值。
ioDataSize:输入时,该值表示调用者所期望的最大的字节数;返回时,是该属性值的实际数据大小。
一点讨论:
在使用这个函数前,可以先使用AudioQueueGetPropertySize函数来获取,存储对应属性值所需的大小。
调用实例:
暂无。
2,AudioQueueSetProperty
函数功能:设置音频队列的某个属性。
函数原型:
OSStatus AudioQueueSetProperty (
AudioQueueRef inAQ,
AudioQueuePropertyID inID,
const void *inData,
UInt32 inDataSize
);
参数解析:
AudioQueueRef inAQ,
AudioQueuePropertyID inID,
const void *inData,
UInt32 inDataSize
);
前面两个参数可参考 AudioQueueGetProperty.
inData:属性的实际值。
inDataSize:属性值数据的大小。
调用实例(先获取别的流对应的属性,再设置):
XThrowIfError (
AudioFileGetProperty (myInfo.mAudioFile, kAudioFilePropertyMagicCookieData, &size, cookie), "get cookie from file");
XThrowIfError ( AudioQueueSetProperty(myInfo.mQueue, kAudioQueueProperty_MagicCookie, cookie, size), "set cookie on queue");
XThrowIfError ( AudioQueueSetProperty(myInfo.mQueue, kAudioQueueProperty_MagicCookie, cookie, size), "set cookie on queue");