2010-01-21 3 views
0

기록 대기열에 대한 내 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 

첫번째 타임 스탬프 버퍼 시간이며, 두 번째 (버튼, I는 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 

당신이 볼 수 있듯이, 타임 스탬프 (? NS 내가 생각)이 두 번째의 주위에 방법이 다릅니다. 그들은 몇 초 동안 실시간을 따라 잡지 못합니다. 이 동작은 전혀 재현 할 수 없습니다 - 타임 스탬프가 때로는 때로는 올바르지 않습니다. 그러나 처음으로 대기열을 열 때 항상 잘못되었습니다.

답변

1

그래서 다시 호흡을하고 SO를 게시하면 해결되었습니다.) 대기열이 정지/일시 중지 된 동안 대기열의 현재 시간 기록을 가져 오면 안됩니다 :^P