首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌入式Youtube视频在iPhone上停止工作

嵌入式Youtube视频在iPhone上停止工作
EN

Stack Overflow用户
提问于 2013-08-12 12:46:24
回答 1查看 713关注 0票数 0

我建立了一个网站,其中包括嵌入的youtube视频。直到最近,他们在所有设备上都能工作,但最近他们停止了在iPhones (和iTouch)上的工作。

视频只会播放几秒钟,然后就会出现黑屏。控制台显示了常见的youtube错误,桌面上的chrome和iphone上的safaris也是如此:

无法将消息发布到....收件人有来源....

已阻止具有原点的帧....从访问具有源的帧....协议、域和端口必须匹配。

用于加载视频播放器的js是从youtube API示例中添加的。

代码语言:javascript
复制
// the width of player
var plwidth = 274;
var plheight = 171;

// This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');

// This is a protocol-relative URL as described here:
tag.src = "http://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

// Create an <iframe> (and YouTube player) when the buttons are pressed.    
function onYouTubeIframeAPIReady(){
    //alert('youtube downloaded');

    var player;

    var buttons = document.getElementsByClassName('playbutton');

    for(var i = 0; i < buttons.length; i++){        
        buttons[i].style.display = "block";
    }

    // display play buttons
    var button = document.getElementById('playbutton');

    button.onclick = function(){
        player = new YT.Player('player', {
            height: plheight,
            width: plwidth,
            videoId: 'wr7-K42RXh8',
            events: {
                'onReady': onPlayerReady,
            }
        });
        return false;       
    }

}   

// The API will call this function when the video player is ready.
function onPlayerReady(event) {
    var videoplaceholder = document.getElementById('videoplaceholder');
    videoplaceholder.style.display = "none";
    event.target.playVideo(); 
    var button = document.getElementById('playbutton');
    button.style.display = "none";          
}

你知道为什么它突然停止在iPhone上工作(它在iPad上工作)吗?任何帮助都是非常感谢的。

干杯

EN

回答 1

Stack Overflow用户

发布于 2013-08-12 13:23:05

尝试使用此方法在UIWebView中播放Youtube视频。

代码语言:javascript
复制
-(NSString*)htmlStringForEmbeddingYTVideoWithVideoID:(NSString*)videoId andPlayerWindowSide:(CGSize)playerWindowSize
{
    NSString *htmlString = [NSString stringWithFormat:@"<!DOCTYPE html><html><body  style=\"margin:0 0 0 0\" bgcolor=\"#000000\"><!-- 1. The <iframe> (and video player) will replace this <div> tag. --><div id=\"player\" style=\"height:%dpx; width:%dpx;\"></div><script>var tag = document.createElement('script');tag.src = \"https://www.youtube.com/iframe_api\";var firstScriptTag = document.getElementsByTagName('script')[0];firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);var player;function onYouTubeIframeAPIReady() {player = new YT.Player('player', {height: '%d',width: '%d',videoId: '%@', playerVars : { 'showinfo' : 0 },events: {'onReady': onPlayerReady,'onStateChange': onPlayerStateChange}});}   function onPlayerReady(event) { event.target.playVideo();   }   var done = false;   function onPlayerStateChange(event) {   if (event.data == YT.PlayerState.PLAYING && !done) {    setTimeout(stopVideo, 6000);    done = true;    }   }   function stopVideo() {  player.stopVideo(); }   </script>   </body> </html>",playerWindowSize.height,playerWindowSize.width,playerWindowSize.height,playerWindowSize.width,videoId];
    return htmlString;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18179675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档