Mat*_*gan 5 video cocoa-touch objective-c avfoundation media-player
我目前正在使用AVPlayer和AVPlayerLayer播放一些视频.在播放视频时,我在视频播放期间每隔30秒注册一次时间更新.这用于绘制视频中该点的加速度图表,并将其与视频一起更新.该图表使用了视频中的CMTime,因此,如果我跳到视频的不同部分,图表会立即表示视频中的该时间点,而无需额外的工作.
据我所知,如果我想获得类似于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];
});
}
}];
Run Code Online (Sandbox Code Playgroud)
谢谢!
如果您正在谈论 MPMoviePlayer 显示的窗口镶边,那么恐怕您正在考虑自己创建此 UI。
AFAIK 无法使用 MediaPlayer 框架实现您需要的计时行为,它是一个非常简单的“播放一些媒体”框架。使用 AVFoundation 您正在做正确的事情。
这使得您需要自己创建 UI。我的建议是从 XIB 文件开始来创建总体布局;顶部的工具栏有一个完成按钮,一个代表自定义播放视图(使用 AVPlayerLayer)的大视图和一个包含控件的单独视图。
如果您想模拟 MPMoviePlayer UI,您需要编写一些自定义控制器代码来根据需要自动显示/隐藏播放控件和工具栏。
归档时间: |
|
查看次数: |
2584 次 |
最近记录: |