Javascript 让YouTube JS API与iOS协同工作,处理嵌入式SWF?
我正在使用YouTube的JS API和视频播放器,如下所示:Javascript 让YouTube JS API与iOS协同工作,处理嵌入式SWF?,javascript,ios,youtube,youtube-api,swfobject,Javascript,Ios,Youtube,Youtube Api,Swfobject,我正在使用YouTube的JS API和视频播放器,如下所示: <script type="text/javascript" src="swfobject.js"></script> <div id="ytapiplayer"> You need Flash player 8+ and JavaScript enabled to view this video. </div> <script type="t
<script type="text/javascript" src="swfobject.js"></script>
<div id="ytapiplayer">
You need Flash player 8+ and JavaScript enabled to view this video.
</div>
<script type="text/javascript">
var params = { allowScriptAccess: "always" };
var atts = { id: "myytplayer" };
swfobject.embedSWF("http://www.youtube.com/v/VIDEO_ID?enablejsapi=1&playerapiid=ytplayer&version=3","ytapiplayer", "425", "356", "8", null, null, params, atts);
</script>
您需要启用Flash player 8+和JavaScript才能查看此视频。
var params={allowScriptAccess:“始终”};
var atts={id:“myytplayer”};
swfobject.embeddeswf(“http://www.youtube.com/v/VIDEO_ID?enablejsapi=1&playerapiid=ytplayer&version=3“,”ytapiplayer“,”425“,”356“,”8“,”空,空,参数,附件);
虽然这在我的电脑和Android设备上运行良好,但在iOS上,ytapiplayer div并没有变成嵌入式播放器,而是只显示其原始内容,即错误消息说需要Flash player 8+和JS
有可能在iOS上运行我的这个吗?如果是,怎么做
提前谢谢 也许你应该试试新的YouTube iframe播放器API 它与移动设备一起工作,而不考虑闪存。 嵌入示例:
<script type="text/javascript" src="//www.youtube.com/iframe_api"></script>
function onYouTubePlayerAPIReady() {
var videoBox = document.getElementById('video1');
videoBox.ytplayer = new YT.Player(videoBox, {
videoId: 'kXDiGtgPL6E',
playerVars: {
//controls: 0,
wmode:'transparent'
},
height: '200',
width: '320'
});
}
函数onYouTubePlayerAPIReady(){
var videoBox=document.getElementById('video1');
videoBox.ytplayer=新的YT.Player(videoBox{
videoId:'kXDiGtgPL6E',
playerVars:{
//控件:0,
wmode:“透明”
},
高度:'200',
宽度:“320”
});
}
几个月前,我为一个项目做了这件事
Javascript,与您拥有的非常相似:
<script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript">
var flashvars = {};
flashvars.youTubeVideo = "VitQwgsBq-w";
flashvars.controllerAlign = "top";
flashvars.queTo = "0";
flashvars.controlBarAlpha = ".3";
var params = {};
var attributes = {};
swfobject.embedSWF("images/youTubeLoader.swf", "youTubeDiv", "250px", "200px", "9.0.0", false, flashvars, params, attributes);
</script>
var flashvars={};
flashvars.youTubeVideo=“VitQwgsBq-w”;
flashvars.controllerAlign=“top”;
flashvars.queTo=“0”;
flashvars.controlBarAlpha=“.3”;
var params={};
var属性={};
swfobject.embeddeswf(“images/youTubeLoader.swf”、“youTubeDiv”、“250px”、“200px”、“9.0.0”、false、flashvars、params、attributes);
js将要做的是查找名为“youTubeDiv”的HTML div,并用SWF youtube播放器替换它的所有内容
(我做了这个b/c,iframe解决方案与我正在从事的HTML5项目存在z索引问题)
现在,HTML:
<div id="youTubeDiv">
<iframe width="250px" height="200px" src="http://www.youtube.com/embed/VitQwgsBq-w" frameborder="0" allowfullscreen></iframe>
</div>
这会显示视频,但会使播放器对任何API操作(播放新视频、更改音量、事件更改等)无响应。这很有效,谢谢。然而,我的OnStateChange函数现在都被调用了两次。因为我的脚本认为已经播放了两个视频(state==end),而实际上只有一个,所以把一切都搞砸了。这几乎就是一系列事件:播放器结束->初始化新视频->播放器结束(错误)->初始化下一个视频->播放成功(但是上一个视频被跳过了,因为API报告它在开始播放之前就已经结束了),不知道为什么会发生这种情况……也许你可以将代码放到JSFIDLE?您还可以在每个视频后重新嵌入播放机,作为临时解决方法。