我正在制作一个三星智能电视应用程序。我需要在youtube上播放视频。有谁知道怎么做吗?我尝试了youtube js api,但当函数playVideo()正在执行时,视频只是开始加载,而不是播放。我有三星智能电视2012,所以SDK是3.5
发布于 2012-07-25 05:48:16
首先,检查您的youtube视频是否已授予移动设备访问权限。
其次,你必须禁用该视频上的广告-因为带有广告的视频在电视设备上还不起作用。
有时,在playVideo()之后需要一段时间才能开始播放视频,特别是当您绑定到一些播放器事件时,因此请尝试等待半分钟或一分钟。
如果这不起作用,请将您的代码粘贴到这里- youtube嵌入和您的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);
}当播放器准备就绪时,接口会调用onYouTubePlayerReady回调函数。我认为在您的解决方案中,您缺少了cueVideoById方法。正如YT API doc所说的那样
播放当前提示/加载的视频。
发布于 2013-08-21 04:41:52
我真的不应该告诉你们这些,因为你们可以开发出与我竞争的应用程序……但是,出于对三星的失望,我会告诉你:只要把这个讨厌的东西作为网页托管在web服务器上(使用你喜欢的YouTube应用程序接口,或者不使用API,只需在页面加载时更改嵌入代码),使用querystring参数控制它播放的视频,然后将其iFrame到您的三星智能电视应用程序中。如果你尝试嵌入一个不是网页的应用程序,YouTube有严格的嵌入限制...所以先放在网页上,然后再把网页放在app里。
这是您在需要在web浏览器中运行的三星智能电视上的任何应用内内容所使用的常规架构。三星浏览器的幸运之处在于它是一款支持闪存的HTML5浏览器。三星智能电视应用程序允许网页内容的IFraming,完全没有安全限制。把2和2放在一起,你几乎可以在这些美化的烤面包机上做任何你想做的事情……请记住,当您更改场景时,您希望卸载这些IFrames (使用JQuery将其SRC属性设置为"“是一种足够的方法),因为它们不会自动卸载,并且这些TV具有很少的内存。
玩得开心点:)
https://stackoverflow.com/questions/11634330
复制相似问题