Подтвердить что ты не робот

AVFoundation: Видео для работы с текстурой OpenGL - Как играть и синхронизировать звук?

Мне удалось загрузить видеодорожку фильма кадр за кадром в текстуру OpenGL с AVFoundation. Я выполнил шаги, описанные в ответе здесь: iOS4: как использовать видеофайл в качестве текстуры OpenGL? и взял некоторый код из образца GLVideoFrame из WWDC2010, который можно скачать здесь: http://bit.ly/cEf0rM

Как воспроизвести аудиодорожку фильма синхронно с видео. Я думаю, что было бы неплохо сыграть его в отдельном проигрывателе, но использовать звуковую дорожку того же AVAsset.

AVAssetTrack* audioTrack = [[asset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0];

Я извлекаю видеофрагмент и его метку времени в обратном вызове CADisplayLink через

CMSampleBufferRef sampleBuffer = [self.readerOutput copyNextSampleBuffer];
CMTime timestamp = CMSampleBufferGetPresentationTimeStamp( sampleBuffer );

где readerOutput имеет тип AVAssetReaderTrackOutput*

Как получить соответствующие аудио-образцы? И как им играть?


Edit:

Я немного огляделся, и я думаю, что лучше всего использовать AudioQueue из AudioToolbox.framework, используя описанный здесь подход: Проблема с потоковой передачей AVAssetReader и Audio

В AVFoundation также есть аудио-плеер: AVAudioPlayer. Но я точно не знаю, как передать данные в него initWithData -initializer, который ожидает NSData. Кроме того, я не думаю, что это лучший выбор для моего случая, потому что новое AVAudioPlayer -инструмент нужно было бы создать для каждого нового фрагмента звуковых образцов, как я понимаю.

Любые другие предложения? Какой лучший способ воспроизвести исходные звуковые сэмплы, которые я получаю от AVAssetReaderTrackOutput?

4b9b3361