我熟悉如何使用AudioUnit來播放聲音,並且被數據包和幀的概念所迷惑。我想知道:AudioUnit使用的數據包和幀大小有什麼值
什麼是包的定義和AudioUnit的背景下架
什麼是每幀
使用每個包多個樣本的行業,和多個數據包
問我的理由:在我看到的所有代碼示例中,數據包本質上是一個樣本,對於16位立體聲流,通常mBytesPerPacket = 4。而mFramesPerPacket通常爲1,製作一個框架,一個數據包和一個樣本(全部是立體聲樣本),都是相同的概念。
我期待一個數據包和/或一個幀是樣本的緩衝區,即一組256或512個連續樣本,驅動程序可以被指向併線性讀取。將幀/數據包大小減少到一個樣本似乎會給任何驅動程序負責播放數據帶來不必要的壓力。我錯過了什麼?
如果模擬器似乎沒有響應您請求的'kAudioSessionProperty_PreferredHardwareIOBufferDuration',請不要混淆,因爲根據我的經驗,此屬性僅影響設備。 – 2011-04-06 08:46:52
@Itamar是的,偉大的一點。模擬器使用系統的CoreAudio配置,因此在幾個方面與iOS相比有很大不同,包括這一點。 – 2011-04-06 13:11:12
謝謝。澄清和defs非常讚賞。 – double07 2011-04-06 16:31:42