我正在使用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/

10-12 06:25