作者ryanliang (暑假闲闲的大学生~~)
看板MacDev
标题Re: [问题] 请问iPhone有办法将接收道的声音直接放 …
时间Tue Oct 19 21:12:17 2010
※ 引述《zonble (zonble)》之铭言:
: ※ 引述《ryanliang (暑假闲闲的大学生~~)》之铭言:
: : 只是我想请问,在您的范例中,该要怎麽确定audio streaming有成功
: : 换句话说,如何去检查inputBuffers里是有资料的?
: 我说一下我所理解的 Audio Queue 好了。
: Audio Queue 就很像是几个水桶(buffer)在那边排队。如果在处理
: 输入的时候,首先就会准备几个空的水桶,用来装 streaming 进来的
: 资料,如果一个水桶装完了,就先把这桶水拿到一个地方处理,同时
: 有另外一个水桶接上去继续装水。这个把装好的水桶拿出来,处理装
: 进来的水的工作,就是在我们所指定的 callback function 中。
: 在 callback function 中,我们可以把收到的 binary data 储存起
: 来,或是要看看做些什麽其他的事情,像是送到某个 view 中,显示
: 目前收到的音量、画个条状图有多大之类的。做完这些事情之後,我
: 们就要把这个空水桶拿回去继续排队装水,这就是 enqueue。
: 在处理输出的时候,我们就不能够拿空水桶,而是要准备一些装满水
: 的水桶,拿去输出装置,把水倒出来。而触发 callback 的时机就刚
: 好与输入相反,是一桶水被倒光了之後,会把这个空水桶拿回来,要
: 你把水装进这个空水桶里。
我了解zonble大的意思了,这样解释的真是清楚,一看就明了!
: 我的写法比较随便,在装满水的 callback function 里头,直接产
: 生一个新的 buffer,然後就拿去倒水了。因为是装满水的 callback
^^^^^^^^^^^^^^^^^
这边我就有点模糊。zonble大的意思是直接产生一个"装满水"的
buffer?所以实际上audio data并没有装进水桶里?
我想应该不是我说的意思,但是我看不大懂zonble大的意思,
可以说明一下吗?
谢谢zonble大!!
: function,如果没有装满水,那应该要去回报 apple bug了吧。:p
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.45.208.119