2014-10-22 9 views
5

Odtwarzam niektóre filmy przy użyciu zestawu SDK Brighcove dla systemu iOS. Podstawowa konfiguracja dla odtwarzania wideo jest (na podstawie przewodnika Brightcove):Zestaw SDK iOS Brightcove Player - Ustaw czas początkowy

@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 

jaki sposób można ustawić czas początkowego wideo? przeczytałem dokumentację SDK i nie znalazłem żadnej właściwości ani metody.

Odpowiedz

1

To interesujące pytanie. Obecnie nie ma sposobu, aby skorzystać z pakietu Brightcove Player SDK dla systemu iOS, aby to osiągnąć, ale można przejść bezpośrednio do poziomu AVFoundation, aby to zrobić. Oto, jak:

Kontroler odtwarzania utworzy sesję odtwarzania dla każdego nadawanego mu wideo. Wewnątrz każdej sesji odtwarzania znajduje się AVPlayer zawierający element AVPlayerItem z adresem wideo (w rzeczywistości jeden z adresów BCOVSource) filmu. Gdy właściwość status AVPlayerItem ma wartość AVPlayerItemStatusReadyToPlay, możesz bezpiecznie użyć dowolnej z metod AVPlayer'a -seekToTime, aby wyszukać wideo w żądanym czasie rozpoczęcia wideo. Istnieje wydarzenie związane z cyklem życia, które zostanie przesłane do twojego uczestnika (jeśli zaimplementujesz odpowiednią metodę delegowania), którego możesz wysłuchać, aby otrzymać powiadomienie o tym wydarzeniu.

Ponadto prawdopodobnie będziesz chciał ustawić self.controller.autoPlay = NO, aby wideo nie zaczęło się, zanim będziesz mieć szansę na osiągnięcie pożądanego czasu rozpoczęcia. Następnie możesz po prostu zadzwonić pod numer -play ręcznie z poziomu programu obsługi zakończenia wyszukiwania.

Oto podstawowa idea (uwaga ten kod nie jest testowany):

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

Dziękuję bardzo za szczegółową odpowiedź, że działa sprawnie! –

+0

Hej chłopaki, Proszę, pomóżcie mi z przykładem. Nie mogę odtwarzać filmów z adresem URL. – Abhishek

+0

Skontaktuj się z pomocą techniczną. – erikprice

Powiązane problemy