作者zonble (zonble)
看板MacDev
标题Re: [问题] 请问iPhone有办法将接收道的声音直接放 …
时间Tue Oct 19 18:11:17 2010
※ 引述《ryanliang (暑假闲闲的大学生~~)》之铭言:
: ※ 引述《zonble (zonble)》之铭言:
: 比较不同的是,我所开发的是在MAC电脑上的程式,不是在iPhone,所
: 以我在Mac OS上找不到AudioSession及AVFoundation所对应的相关用
: 法。而我用的是之前我有请你看过的QTSaptureSession来传送audio
: 资料,所以我还在找连结转换的方法。
基本上,Mac 不用去管 iPhone 上面那种 audio session 的东西。
Audio session 在 iPhone 上面,主要负责的工作是,由於 iPhone
本身不仅是一个可以拿来跑电脑程式的环境,最重要的,它仍然还是
一支手机,所以不同的 audio 来源,会有不同的重要性。比方说,
就算手机调到静音模式,但是有些音效还是要可以发出来,或是,当
你在播音乐的时候,这时候有电话进来,这时候就不应该一边讲电话
一边放音乐,而是音乐要先停下来,等电话讲完,再继续放歌…诸如
此类。Mac 就不用管这些事情。
现在你的问题应该是,怎样用 Audio Queue 把 QTKit 收到的 Linear
PCM Packet,透过音效装置放出来。应该是产生一个 AudioQueueBuffer
然後把 QTKit delegate method 传进来的 binary data 的长度跟指标
丢到 AudioQueueBuffer 的 mAudioData 与 mAudioDataByteSize 之类,
然後把这个 AudioQueueBuffer 丢去 enqueue。但是要注意 audio device
要求的 audio 格式与 QTKit 给的一不一样,可能要看一下 QTSampleBuffer
的 formatDescription 里头,告诉你现在用的是什麽格式。
如果要看 AudioQueue 怎麽录音,建议看一下苹果官方范例 SpeakHere
看一下 AQRecorder.mm 这个档案,像是 AudioFileWritePackets 怎麽用。
--
zonble.net
cocoa.zonble.net
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.128.103.143