2011-07-25 2 views
2

Мне нужно прочитать необработанные образцы аудио и видео с AVAsset. Каков наилучший способ сделать это? Я могу подключить несколько объектов AVAssetReaderTrackOutput к одному AVAssetReader. Но [AVAssetReaderOutput copyNextSampleBuffer] является синхронным. Каков наилучший способ прочитать два трека в хронологическом порядке Безопасно ли назначать поток каждому AVAssetReaderTrackOutput?Прочитайте несколько дорожек с помощью AVAssetReader

ответ

2

Хороший вопрос - один поток на AVAssetReaderTrackOutput кажется, чтобы нормально работать на iOS, но должен ли он не документироваться. В зависимости от того, как реализовано AVFoundation, вы можете вызвать асинхронный доступ к AVAssetReader и AVAsset. Должно ли это работать? Никто не знает.

Чтобы быть действительно безопасным вы должны создать два AVAssetReaders и даже два AVAssets (они, вероятно, просто AVURLAssets).

+0

Я бы рекомендовал сделать 2 читателя, возможно, я допустил некоторые ошибки, но у меня было странное поведение при использовании только одного. – TurqMage

+0

Какое странное поведение? [AVAssetReader initWithAsset] сбои? –

+0

Исключения при запуске и сбоях инициализации, я не записывал, какие были точные ошибки. Я делал это больше из любопытства, чем необходимость. – TurqMage