我正在制作三星智能电视应用程序。我需要播放YouTube视频。
有谁知道怎么做?我尝试youtube js api但是当函数playVideo()
正在执行时,视频才开始加载但不播放。
我有三星智能电视2012所以SDK是3.5
答案 0 :(得分:2)
首先检查您的YouTube视频是否已授予移动设备访问权限。
其次,你必须禁用该视频的广告 - 因为带有广告的视频在电视设备上无效。
有时在playVideo()之后需要一段时间才能开始播放视频,特别是在绑定某些播放器事件时,请尝试等待一半或一分钟。
如果这样做无效,请在此处粘贴您的代码 - youtube embedding和您的JS调用,我会尽力提供帮助。
修改强>
尝试使用Samsung docs中的Flash嵌入。
作为电影参数将src传递给YouTube API player:
<object type="application/x-shockwave-flash" id="playerObject">
<param name="movie" value="http://www.youtube.com/apiplayer?&enablejsapi=1"></param>
<param name="allowScriptAccess" value="always"></param>
<param name="allowFullScreen" value="true"></param>
<param name="wmode" value="transparent"></param>
</object>
并使用这种方法:
var ytPlayer = null;
function onYouTubePlayerReady() {
ytPlayer = document.getElementById('playerObject');
if (ytPlayer) {
ytPlayer.addEventListener('onStateChange','onChange');
ytPlayer.addEventListener('onError', 'onError');
ytPlayer.cueVideoById('i4iDWXstrWY'); //load video for play http://www.youtube.com/watch?v=i4iDWXstrWY
} else {
alert("error");
}
}
function onChange(newState) {
//Possible values are unstarted (-1), ended (0), playing (1), paused (2), buffering (3), video cued (5)
switch (newState) {
case 5:
ytPlayer.playVideo();
break;
}
function onError(errorCode) {
alert(errorCode);
}
当播放器准备就绪时,API将调用onYouTubePlayerReady
回调函数。我认为在您的解决方案中,您缺少cueVideoById
方法。正如在YT API doc
播放当前提示/加载视频。
答案 1 :(得分:0)
我真的不应该告诉你们这个,因为你们可以制作与我竞争的应用程序......但是出于对三星的挫败感,我会告诉你:只是在网页上托管这个网页。网络服务器(使用您喜欢的任何YouTube API,或者没有API,只需更改页面加载时的嵌入代码),使用查询字符串参数控制它播放的视频,然后将其嵌入到您的Samsung Smart TV应用程序中。如果您尝试嵌入非网页的应用程序,YouTube会有严格的嵌入限制...所以请坚持使用网页,然后在应用中粘贴网页。
这是您用于三星智能电视上需要在网络浏览器中运行的任何应用内内容的一般架构。三星浏览器有幸成为支持Flash的HTML5浏览器。三星智能电视应用程序允许完全没有安全限制的网页内容的IFraming。将2和2放在一起,您可以在这些美化的烤面包机上做任何你想做的事情......请记住,你想要卸载这些IFrame(使用JQuery将它们的SRC属性设置为“”是一种适当的方法)你改变场景是因为他们没有自己卸载,而且这些电视的内存非常少。
玩得开心:)