我目前正在使用AVPlayer和AVPlayerLayer来播放一些视频。在播放视频时,我在视频中每隔30秒注册一次时间更新。这用于绘制视频中该点处加速度的图形,并与视频一起更新。该图正在使用视频中的CMTime,因此,如果我跳到视频的其他部分,该图就会立即表示视频中的该时间点,而无需额外的工作。AVPlayerLayer - 重新编程车轮?
任何人,据我所知,如果我想获得类似于MediaPlayer框架提供的界面,我将不得不自己这样做。
我想知道的是,有没有办法使用我的AVPlayer与MediaPlayer框架? (不是我能看到的。)或者,有没有办法通过MediaPlayer框架注册增量时间更新。
我的代码,如果有人有兴趣,如下:
[moviePlayer addPeriodicTimeObserverForInterval: CMTimeMake(1, 30) queue: dispatch_queue_create("eventQueue", NULL) usingBlock: ^(CMTime time) {
loopCount = (int)(CMTimeGetSeconds(time) * 30);
if(loopCount < [dataPointArray count]) {
dispatch_sync(dispatch_get_main_queue(), ^{
[graphLayer setNeedsDisplay];
});
}
}];
谢谢!
Woa。这个答案比问题晚了近一年,并且仍然被接受了!布拉沃。 – Almo 2012-05-15 17:37:12