Die*_*dal 5 video sdk ios brightcove
我正在使用适用于iOS的Brighcove SDK播放一些视频.播放视频的基本设置是(基于Brightcove指南):
@interface VideoPlayerViewController()
@property (strong, nonatomic) id <BCOVPlaybackController> videoController;
@end
@implementation VideoPlayerViewController
-(void)viewDidLoad {
// create an array of videos
NSArray *videos = @[
[self videoWithURL:[NSURL URLWithString:@"http://cf9c36303a9981e3e8cc-31a5eb2af178214dc2ca6ce50f208bb5.r97.cf1.rackcdn.com/bigger_badminton_600.mp4"]],
[self videoWithURL:[NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"]]
];
// add the playback controller
self.controller = [[BCOVPlayerSDKManager sharedManager] createPlaybackControllerWithViewStrategy:[self viewStrategy]];
self.controller.view.frame = self.view.bounds;
// create a playback controller delegate
self.controller.delegate = self;
self.controller.view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
// add the controller view as a subview of the SVPViewController's view
[self.view addSubview:self.controller.view];
// turn on auto-advance
self.controller.autoAdvance = YES;
// turn on auto-play
self.controller.autoPlay = YES;
// add the video array to the controller's playback queue
[self.controller setVideos:videos];
// play the first video
[self.controller play];
}
@end
Run Code Online (Sandbox Code Playgroud)
如何设置视频的初始时间?我已阅读SDK文档,但未找到任何属性或方法.
这是一个有趣的问题。目前还没有办法使用适用于 iOS 的 Brightcove Player SDK 来轻松完成此操作,但您可以直接进入 AVFoundation 级别来执行此操作。就是这样:
播放控制器将为您提供给它的每个视频创建一个播放会话。每个播放会话的内部都是一个 AVPlayer,其中包含一个带有您的视频(实际上是视频的 BCOVSource 之一)URL 的 AVPlayerItem。一旦 AVPlayerItem 的status属性值为AVPlayerItemStatusReadyToPlay,您就可以安全地使用 AVPlayer 的任何-seekToTime方法来查找视频到所需的视频开始时间。有一个生命周期事件被发送到您的委托(如果您实现了适当的委托方法),您可以监听该事件以获得有关此事件的通知。
此外,您可能需要进行设置self.controller.autoPlay = NO,以便在您有机会找到所需的开始时间之前,视频不会开始播放。然后您可以-play从搜索完成处理程序中手动调用。
这是基本思想(请注意此代码未经测试):
- (void)playbackController:(id<BCOVPlaybackController>)controller session:(id<BCOVPlaybackSession>)session didReceiveLifecycleEvent:(BCOVPlaybackSessionLifecycleEvent *)event
{
if ([kBCOVPlaybackSessionLifecycleEventReady isEqualToString:event.eventType])
{
[session.player seekToTime:desiredStartTime completionHandler:^() {
[session.player play];
}];
}
}
Run Code Online (Sandbox Code Playgroud)