2015-03-26 4 views
5

Ho problemi con la libreria youtube-ios-player-helper di YouTube. Posso caricare un video nel lettore e suona, ma se tocchi, il video si interrompe per alcuni secondi e poi ricomincia a suonare.YTPlayerView pausa youtube-ios-player-helper non funziona

Il codice UIViewController incredibilmente semplice per avviare il video è:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.player = [[YTPlayerView alloc] initWithFrame:CGRectMake(X, Y, WIDTH, HEIGHT)]; 

    self.player.delegate = self; 
    [self.view addSubview:self.player]; 
    [self.player loadWithVideoId:@"bQCjOm4p5jM"]; 

} 

Ho strumentato il metodo delegato didChangeToState con NSLog come segue:

- (void)playerView:(YTPlayerView *)playerView didChangeToState:(YTPlayerState)state { 
    switch (state) { 
     case kYTPlayerStatePlaying: 
      NSLog(@"Started playback"); 
      break; 
     case kYTPlayerStatePaused: 
      NSLog(@"Paused playback"); 
      break; 
     default: 
      NSLog(@"didChangeToState %d", state); 
      break; 
    } 
} 

Nel registro Xcode, quando si tocca 'giocare 'per avviare la riproduzione del video, vedo:

didChangeToState 4 

Il valore 4 non ha t sembra essere definito in YTPlayerView.m. Quando il video inizia effettivamente a giocare, vedo il messaggio di registro Started playback previsto.

Quando tocco "pausa", non vedo nulla nel registro (nessun evento didChangeToState attivato, l'evento che mi sarei aspettato sarebbe kYTPlayerStatePaused per i documenti YTPlayerView). Tuttavia, alcuni secondi dopo, il video riprende a essere riprodotto, quindi vengono visualizzati due messaggi di registro Started playback consecutivi (eventi kYTPlayerStatePlaying). Ogni volta che preme 'pause' per provare a mettere in pausa il video, si ferma per alcuni secondi (senza evento kYTPlayerStatePaused), ma poi ricomincia la riproduzione e vedo i messaggi di registro Started playback.

Chiunque altro lo vede? Qualcuno sa dove andare da qui? Questo è Xcode 6.2 e la build target è iOS 8.0.

risposta

9

Ho trovato una soluzione qui nel tracker dei problemi di Github per il codice. Scusate, immagino di averlo perso nelle mie precedenti ricerche.

la correzione descritta è qui: https://github.com/youtube/youtube-ios-player-helper/issues/86

In YTPlayerView-iframe-player.html, rimuovere o commentare qui sotto code.

window.setInterval(forcePlay, 5000); 

C'è un'altra correzione suggerito che sostituisce completamente il file YTPlayerView-iframe-player.html ma la sembra al di sopra di aver lavorato per me. Mi preoccupa che il codice di Google per questa funzione di base sia così fondamentalmente rotto.

+0

Mi rendo conto che questo è un post più vecchio, ma sto avendo questo problema con 'youtube-ios-player-helper', '~> 0.1.4' (iniettato via cocoapods) e l'HTML non contiene il codice JavaScript sopra . Qualcuno ha risolto questo in 0.1.4 della libreria helper? – psparago