我正在使用Brighcove SDK for iOS播放一些视频。播放视频的基本设置是(基于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
如何设置视频的初始时间?我已阅读SDK文档,但未找到任何属性或方法。
最佳答案
这是一个有趣的问题。当前没有一种方法可以使用iOS的Brightcove Player SDK轻松完成此操作,但是您可以直接进入AVFoundation级别进行操作。就是这样:
播放 Controller 将为您提供给它的每个视频创建一个播放 session 。在每个回放 session 的内部是一个AVPlayer,其中包含一个AVPlayerItem以及您的视频(实际上是视频的BCOVSource之一)的URL。一旦AVPlayerItem的status
属性具有AVPlayerItemStatusReadyToPlay
的值,您就可以安全地使用AVPlayer的-seekToTime
方法中的任何一种来将视频搜索到所需的视频开始时间。有一个生命周期事件被发送到您的委托(delegate)(如果您实现了适当的委托(delegate)方法),您可以监听该事件以获取该事件的通知。
另外,您可能需要设置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];
}];
}
}
关于iOS Brightcove Player SDK-设置初始时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26513331/