我正在使用视频/音频流并使用AudioQueueRef
播放音频。我使用当前时间AudioQueueRef
来实时同步视频/音频帧。当我寻找指定的时间时,我得到的AudioQueueRef
的当前时间不是返回正确的值,它只是在时间之前连续返回值。我认为问题是我没有重置AudioQueueRef
的所有旧对象。但我尝试了很多方法,我没有得到期望当前的时间价值。有人对此案有所了解吗?谢谢高级。
方法我获取AudioQueueRef的当前时间
- (double)currentTime {
double timeInterval = 0;
AudioTimeStamp timeStamp;
AudioQueueGetCurrentTime(_AudioQueues, NULL, &timeStamp, NULL);
timeInterval = 1000 * timeStamp.mSampleTime / self.inFormat.mSampleRate; // convert to miliseconds
return timeInterval;
}
我尝试在搜索时重置值的方法。如果我使用下面的任何方法,当前时间将返回负值。
AudioQueueFreeBuffer(_AudioQueues, _AudioBuffer);
AudioQueueFlush(_AudioQueues);
AudioQueueReset(_AudioQueues);
P / S:在寻求之前所有事情都是正确的,在寻求之后,时间戳是连续返回值。