【问题标题】:iOS Brightcove Player SDK - Set initial timeiOS Brightcove Player SDK - 设置初始时间
【发布时间】:2014-12-18 05:59:56
【问题描述】:

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

如何设置视频的初始时间?我已阅读 SDK 文档,但没有找到任何属性或方法。

【问题讨论】:

    标签: ios video sdk brightcove


    【解决方案1】:

    这是一个有趣的问题。目前没有一种方法可以使用适用于 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];
    
            }];
        }
    }
    

    【讨论】:

    • 非常感谢您的详细解答,运行顺利!
    • 大家好,请帮我举个例子。我无法播放带有 url 的视频。
    猜你喜欢
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    相关资源
    最近更新 更多