iOS Brightcove Player SDK — установить начальное время

Я воспроизводю несколько видео, используя Brighcove SDK для 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 и не нашел ни свойства, ни метода.


person Diego Vidal    schedule 22.10.2014    source источник


Ответы (1)


Это интересный вопрос. В настоящее время нет способа использовать Brightcove Player SDK для iOS, чтобы легко сделать это, но вы можете перейти непосредственно на уровень AVFoundation, чтобы сделать это. Вот как:

Контроллер воспроизведения создаст сеанс воспроизведения для каждого видео, которое вы ему отдадите. Внутри каждого сеанса воспроизведения находится AVPlayer, содержащий AVPlayerItem с URL вашего видео (фактически, одного из BCOVSource видео). Как только свойство status AVPlayerItem имеет значение AVPlayerItemStatusReadyToPlay, вы можете безопасно использовать любой из методов -seekToTime AVPlayer для поиска видео до желаемого времени начала видео. Существует событие жизненного цикла, которое отправляется вашему делегату (если вы реализуете соответствующий метод делегата), который вы можете прослушать, чтобы получить уведомление об этом событии.

Кроме того, вы, вероятно, захотите установить 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];

        }];
    }
}
person erikprice    schedule 23.10.2014
comment
Большое спасибо за подробный ответ, все работает! - person Diego Vidal; 23.10.2014
comment
Эй, ребята, пожалуйста, помогите мне с примером. Я не могу воспроизводить видео с URL-адресом. - person Abhishek; 30.09.2016