Воспроизведение двух QTMovie синхронно - PullRequest
1 голос
/ 02 ноября 2010

У меня есть приложение Какао, которое должно воспроизводить два разных объекта QTMovie полностью синхронизированными. Оба фильма имеют одинаковое разрешение, размер и т. Д., Но могут иметь разную длину. Фильмы сжаты, и необходимо, чтобы они были многопоточными.

Мой текущий подход:

NSMutableDictionary *movieAttributes1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                         [NSNumber numberWithBool:NO], QTMovieOpenAsyncOKAttribute,
                                         [NSNumber numberWithBool:YES], QTMovieOpenForPlaybackAttribute,
                                         nil];

[movieAttributes1 setValue:pathOfFile1 forKey:QTMovieFileNameAttribute];

NSMutableDictionary *movieAttributes2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                         [NSNumber numberWithBool:NO], QTMovieOpenAsyncOKAttribute,
                                         [NSNumber numberWithBool:YES], QTMovieOpenForPlaybackAttribute,
                                         nil];

[movieAttributes2 setValue:pathOfFile2 forKey:QTMovieFileNameAttribute];


QTMovie* leftMovie = [QTMovie movieWithAttributes:movieAttributes1 error:nil];
QTMovie* rightMovie = [QTMovie movieWithAttributes:movieAttributes2 error:nil];

....

[leftMovie play];
[rightMovie play];

Готово в кнопках воспроизведения ClickHandler.

В 9 из 10 случаев это работает, но иногда фильмы воспроизводятся асинхронно. Я также уверен, что они станут асинхронными в случае высокой загрузки процессора.

Есть идеи? Большое спасибо.

1 Ответ

0 голосов
/ 02 ноября 2010

Я не верю, что есть какой-либо поддерживаемый способ сделать это в API. Возможно, вам придется периодически их синхронизировать.

Для этого установите таймер, который устанавливает точное время второго фильма на время первого каждую секунду или полсекунды. Если один из них превышает максимальную длительность другого, остановите таймер и дайте ему поработать нормально.

...