Я занимаюсь разработкой для iPhone и пытаюсь получить начальную метку времени для синхронизации моих аудиоQueues.
Я использую AudioQueueDeviceGetCurrentTime
для этого. Согласно документации эта функция возвращает действительный mHostTime независимо от того, работает очередь / устройство или нет . Но когда я пытаюсь это , я получаю kAudioHardwareNotRunningError
(1937010544). Все очереди имеют временную шкалу и были инициализированы перед вызовом функции.
Как я могу получить действительный mHostTime для синхронизации моих AudioQueues (до запуска очередей)?
Мой код:
AudioSessionInitialize(NULL, NULL, interruptionListenerCallback, self);
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,
sizeof(sessionCategory), &sessionCategory);
// initialize all queues
// ....
AudioSessionSetActive(true);
OSStatus result;
AudioTimestamp currentTime;
result = AudioQueueDeviceGetCurrentTime(audioQueueRef, ¤tTimeStamp);
if (!result)
{
// rest of code
}