簡體   English   中英

音頻隊列:記錄緩沖區的時間戳

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM