AudioToolbox之AudioQueue.h(二)Creating and Disposing of Audio Queues

创建音频队列时,参数较多,使用的时候要特别小心。

1,AudioQueueNewOutPut

函数功能:创建一个播放音频队列对象。

函数原型:

 OSStatus  AudioQueueNewOutput (
   const  AudioStreamBasicDescription   *inFormat,
    AudioQueueOutputCallback            inCallbackProc,
   void                                *inUserData,
    CFRunLoopRef                        inCallbackRunLoop,
    CFStringRef                         inCallbackRunLoopMode,
   UInt32                              inFlags,
    AudioQueueRef                       *outAQ
);
参数解析:

inFormat:从它的类型上,我们可知,它需要的是基本的流信息。对于一个已经存在的流文件,一般通过AudioFileGetProperty的方法(属性ID是kAudioFilePropertyDataFormat)来获取。

inCallbackProc:音频队列输出(播放)时的回调函数。回调函数是设计还是挺有技巧的,需要多体会demo中的使用。

inUserData:是inCallbackProc的使用者,通常是inCallbackProc的第一个参数。

inCallbackRunLoop:指定回调函数执行的事件循环。一般使用:CFRunLoopGetCurrent(),当设置为NULL时,这个时间循环插入到其中一个音频队列的内部线程中。

inCallbackRunLoopMode:回调函数执行时的模式,一般不关注这个参数,通常设置为:kCFRunLoopCommonModes

inFlags:保留参数,必须设置为0.

outAQ:新创建的音频队列对象。(出来的时候,队列里面就有数据了)


使用实例:苹果官方的speakHere、AQOfflinRenderTest等都有。


2,AudioQueueNewInPut

函数功能:创建一个录音音频队列对象。

和AudioQueueNewOutPut很类似,参数的使用也基本一致,区别仅仅是:AudioQueueNewOutPut创建的是播放队列,而AudioQueueNewInPut创建的是录音队列。


3,AudioQueueDispose

函数功能:销毁(处理)一个音频队列。

参数原型:

 OSStatus AudioQueueDispose (
   AudioQueueRef inAQ,
   Boolean inImmediate
);

参数解析:

inAQ:想要销毁的音频队列。

inImmdiate:是否马上销毁音频队列。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值