【问题标题】:Embedded vimeo/youtube videos not stopping嵌入式 vimeo/youtube 视频没有停止
【发布时间】:2013-06-05 10:03:50
【问题描述】:

我在这里提出一个愚蠢的问题。我有一个像这样的嵌入式 vimeo 播放器:

NSString *htmlString = @"<html><head><style type="text/css">body {background-color:black; color:black; margin-right:auto; margin-left:auto;}</style></head><body style="margin:0"><iframe id="video" name="video" src="http://player.vimeo.com/video/67487897?byline=0&autoplay=1&api=1&player_id=video" width="768.000000" height="525.000000" frameborder="0"></body></html>";

并将其加载到 UIWebView 中,如下所示:

[_webView loadHTMLString:html baseURL:nil];

视频可以正常加载,但不会自动播放。但是,我知道嵌入式播放器不支持自动播放。我用于自动播放的代码是:

- (void)webViewDidFinishLoad:(UIWebView *)wbView{

            //            NSString *script = @"var message = 'api_play'; var vid = document.getElementById('video'); var window =  vid.contentWindow; window.postMessage('{\"event\":\"command\",\"func\":\"' + message + '\",\"args\":\"\"}', '*');";
            NSString *script = @"var vid = document.getElementById('video'); var window =  vid.contentWindow; window.postMessage('{\"method\":\"play\"}', vid.src.split('?')[0]);";
            NSLog(@"%@",script);
            [_webView stringByEvaluatingJavaScriptFromString:script];
//the above portion did not work so I tried this one too but of no use...
                script = @"var vid = document.getElementById('video'); var window =  vid.contentWindow; window.api(\"play\"); alert('done'); vid.src = '';";
                [_webView stringByEvaluatingJavaScriptFromString:script];
    }

但自动播放不是主要问题。这里最大的问题是,当我离开这个屏幕时,有时视频不会停止。我尝试了多件事和多个脚本,但问题并没有出现在我使用的代码中:

//        NSString *script = @"var message = 'api_unload'; var vid = document.getElementById('video'); var window =  vid.contentWindow; window.postMessage('{\"event\":\"command\",\"func\":\"' + message + '\",\"args\":\"\"}', '*'); vid.src = '';";
        NSString *script = @"var vid = document.getElementById('video'); var window =  vid.contentWindow; window.postMessage('{\"method\":\"pause\"}', vid.src.split('?')[0]);";
        NSLog(@"%@",script);
        [_webView stringByEvaluatingJavaScriptFromString:script];

我也试过用这个:

NSString *script = @"var vid = document.getElementById('video'); var window =  vid.contentWindow; window.api(\"pause\"); vid.src = '';";
    NSLog(@"%@",script);
    [_webView stringByEvaluatingJavaScriptFromString:script];

都没有用。

只是做

[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about://blank"]]];

也不起作用。我在使用 youtube 视频时也面临同样的问题。

我的选择已经不多了。有人遇到过同样的问题吗?

我目前正在使用 iPad3,但我知道在其他 ipad 上也会发生同样的事情。

【问题讨论】:

    标签: javascript ipad video vimeo


    【解决方案1】:

    这将自动播放嵌入的 vimeo

    http://vimeo.com/moogaloop.swf?clip_id=71788444&server=www.vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1&autoplay=1
    

    注意最后的 &autoplay=1

    【讨论】:

      猜你喜欢
      • 2014-04-04
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      • 2013-03-03
      相关资源
      最近更新 更多