2013-07-02 23 views
9

Tam ekran üzerinde mobil (iPhone) safari (webkit) işleviyle ilgili webkitExitFullScreen işlevlerine nasıl erişirim?YouTube IFrame API'sı ve webkitExitFullScreen on IOS [revisit]

Bir iPhone'u IFrame API kullanarak bir video her zaman tam ekran oynatır, ancak daha sonra JS aracılığıyla webkitExitFullScreen gibi farklı işlevlere erişemiyorum. Ben sormak ve yanıtlamak istedik

https://groups.google.com/forum/#!msg/youtube-api-gdata/7ioV74oFX84/U8zQ7-Yl9w4J

https://groups.google.com/d/msg/youtube-api-gdata/fygn23jMbdE/pNE57RDl1gEJ

ve

:

Bu burada YouTube API Forum yılında forum ve ekibine zaten açılmış olduğunu gördük Soruları üzerinde özellikle bir yıl önce olduğundan beri sonuncusu. Ama gruplar şimdi kapalı ve burada dosyalamam gerektiğini söyledi. Bu zaten the API yerde uygulamaya konmuştur ve bunu eksik olabilir eğer kimse bir fikrin var mı? Ya da belki de ekibiyle nasıl iletişim kurabilir ve onlara doğrudan ilerleme veya durum hakkında sorular sorabilirsin?

+0

gibi bilge, burada bir güncelleme olup olmadığını bilmek ister misiniz? @index herhangi bir yere var mı? – addedlovely

+0

@addedlovely sayılı Henüz. Bu aslında bizim için şimdilik bir sınırlama oldu. yanınızda :(şey var mı? – index

+0

@addedlovely burada https://code.google.com/p/gdata-issues/issues/detail?id=5710#makechanges google'ın youtube API bu dosyalanmış ettik ve onlar bu belirtti Yakında planlarında yok. :( – index

cevap

1

yazma

webView112 = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
webView112.backgroundColor = [UIColor redColor]; 
webView112.allowsInlineMediaPlayback = YES; 
webView112.mediaPlaybackRequiresUserAction = NO; 
webView112.delegate = self; 
[self.view addSubview:webView112]; 

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"youtube" ofType:@"html"]; 
NSString *html = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; 

[webView112 loadHTMLString:html baseURL:[NSURL URLWithString:@"any static url"]]; 

ve aşağıdaki yöntem .html dosyası

Bu kodu videonuza

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ 
if ([[[request URL] scheme] isEqualToString:@"callback"]) 
{ 

    NSLog(@"get callback"); 
    [webView112 removeFromSuperview]; 

    return NO; 
} 

return YES;} 

tamamlanmasının ardından yangın ve .html dosyası oluşturabilir ve yapıştırın olacaktır viewDidLoad içinde

<html> 
<head> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 

    <script> 
     var elapsed = -1; 
     var isPlayerLoaded = false; 
     var tag = document.createElement('script'); 
     tag.src = "http://www.youtube.com/player_api"; 
     var firstScriptTag = document.getElementsByTagName('script')[0]; 
     firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

     // 4. The API will call this function when the video player is ready. 
     function onPlayerReady(event) { 
      player.playVideo(); 
     } 

     //   function onPlayerError(event) { 
     //   } 
     // 
     function onPlayerStateChange(event) { 
      var state = ''; 
      switch(event.data) { 
       case YT.PlayerState.ENDED: 
        window.location = "callback:anything"; 
        break; 
       case YT.PlayerState.PLAYING: 
        state = 'playing'; 
        break; 
       case YT.PlayerState.PAUSED: 
        state = 'paused'; 
        break; 
       case YT.PlayerState.BUFFERING: 
        state = 'buffering'; 
        break; 
       case YT.PlayerState.CUED: 
        state = 'cued'; 
        break; 
       default: 
        state = 'unstarted'; 
        break; 
      } 
      jQuery('#log').append(state + "<br/>"); 
     } 

     // 3. This function creates an <iframe> (and YouTube player) 
     // after the API code downloads. 
     var player; 
     function onYouTubePlayerAPIReady() { 
      player = new YT.Player('player', { 
            height: '400', 
            width: '320', 
            videoId: 'y84oAUjA8ms', 
            playerVars: { 'autoplay': 0, 'modestbranding': 1, 'rel': 0, 'showinfo': 0, 'iv_load_policy': 3, 'controls': 1, 'playsinline':1 }, 
            events: { 
            'onReady': onPlayerReady, 
            'onStateChange': onPlayerStateChange 
            //          'onError': onPlayerError 
            } 
            }); 
     } 

     </script> 
</head> 
<body style="padding:0;margin:0;background-color:#000000;"> 
    <div id="log" style="background:#fff;height:0px;width:0%;margin-top:0px;"></div> 
    <div id="player" frameborder="0"></div> 
</body> 

İlgili konular