2014-10-22 11 views
5

Ich spiele einige Videos mit dem Brighcove SDK für iOS. Die Grundeinstellung für das Video abgespielt wird (basierend auf dem Brightcove Führer):iOS Brightcove Player SDK - Festlegen der Anfangszeit

@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 

Wie kann ich die Anfangszeit des Videos? Ich habe die SDK-Dokumentation gelesen und keine Eigenschaften oder Methoden gefunden.

Antwort

1

Das ist eine interessante Frage. Derzeit gibt es keine Möglichkeit, das Brightcove Player SDK für iOS zu verwenden, um dies problemlos durchzuführen. Sie können jedoch direkt auf die AVFoundation-Ebene gehen. So geht's:

Der Playback-Controller erstellt für jedes Video, das Sie ihm geben, eine Wiedergabesitzung. Innerhalb jeder Wiedergabesitzung befindet sich ein AVPlayer, der ein AVPlayerItem mit der URL Ihres Videos (eigentlich eines der BCOVSource-Videos) enthält. Sobald die Eigenschaft status des AVPlayerItem den Wert AVPlayerItemStatusReadyToPlay hat, können Sie sicher alle Methoden des AVPlayers -seekToTime verwenden, um das Video zur gewünschten Startzeit des Videos zu suchen. Es gibt ein Lebenszyklusereignis, das an Ihren Delegaten gesendet wird (wenn Sie die entsprechende Delegate-Methode implementieren), die Sie abhören können, um über dieses Ereignis benachrichtigt zu werden.

Sie sollten auch self.controller.autoPlay = NO einstellen, damit das Video nicht abgespielt wird, bevor Sie die gewünschte Startzeit gefunden haben. Dann können Sie -play manuell in Ihrem Suchabschlußhandler aufrufen.

Hier ist die Grundidee (beachten Sie diesen Code nicht getestet):

- (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]; 

     }]; 
    } 
} 
+0

Vielen Dank für Ihre ausführliche Antwort, es funktioniert reibungslos! –

+0

Hey Leute, Bitte helfen Sie mir mit einem Beispiel. Ich kann keine Videos mit URL abspielen. – Abhishek

+0

Kontaktieren Sie den Support. – erikprice