[英]Audio Queue: Timestamps for recorded buffers
我試圖從我的AudioInputCallback
函數中為記錄隊列中的記錄緩沖區中抓取時間。 不幸的是,我看到的時間戳與預期不符。 這是一個示例(使用AudioTimeStamp.mHostTime
):
2010-01-21 14:03:35.252 [61694:207] 1288747268011206 1288747396166138 -128154932
2010-01-21 14:03:35.344 [61694:207] 1288747360891024 1288747396166138 -35275114
2010-01-21 14:03:35.437 [61694:207] 1288747453770843 1288747396166138 57604705
2010-01-21 14:03:35.530 [61694:207] 1288747546652078 1288747396166138 150485940
第一個時間戳是緩沖時間,第二個是參考時間(按下按鈕的時間,我正在使用AudioQueueDeviceGetCurrentTime
),第三個是兩者之間的差異。 正如預期的那樣,在運行了兩個緩沖區回調之后,緩沖區稍微滯后於“實時”,並趕上了。
現在,當關閉並重新打開此隊列時,情況就大不相同了:
2010-01-21 14:03:46.769 [61694:207] 1288755719477798 1288758853485434 -3134007636
2010-01-21 14:03:46.862 [61694:207] 1288755812365464 1288758853485434 -3041119970
2010-01-21 14:03:46.955 [61694:207] 1288755905305200 1288758853485434 -2948180234
如您所見,第二次時間戳記(我想是嗎?)截然不同。 他們幾秒鍾都無法趕上實時。 這種行為根本無法重現-時間戳有時是正確的,有時是錯誤的。 但是,當我第一次打開隊列時,它們總是錯誤的。
因此,再次喘口氣並在SO上發布已解決了問題;)在隊列停止/暫停時,您不應獲取隊列的當前時間戳記:^ P
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.