Синхронизировать видео с анимацией openGL - PullRequest
11 голосов
/ 03 октября 2011

Я пытаюсь синхронизировать видео с анимацией, нарисованной с помощью openGL на iPad, и я не знаю, как это сделать:

  1. Поиск текущего воспроизводимого видеокадра.
  2. Убедитесь, что обновление видео и обновление чертежа openGL происходит в одно и то же время, поскольку даже небольшая проблема синхронизации может привести к визуальным дефектам.

1 Ответ

3 голосов
/ 19 марта 2013

Не уверен, что это будет работать, но вместо использования MPMoviePlayerController вы можете использовать AVPlayer и использовать AVSynchronizedLayer для синхронизации времени вашего уровня OpenGL с AVPlayerLayer..

Вы можете создать видеоплеер следующим образом:

NSURL *videoURL = [NSURL fileURLWithPath:@"your_url"];
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:videoURL options:nil];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:asset];

UIView *playerView = [[UIView alloc] initWithFrame:frame];
AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem];
AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
[playerLayer setFrame:[[playerView layer] bounds]];

Затем создайте слой AVSynchronizedLayer и синхронизируйте его с playerLayer:

AVSynchronizedLayer *syncLayer = [AVSynchronizedLayer synchronizedLayerWithPlayerItem:playerItem];
[syncLayer addSublayer:yourGlView.layer];

[playerView.layer addSublayer:playerLayer];
[playerView.layer addSublayer:syncLayer];

[self.view addSubview:playerView];
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...