2012-07-24 256 views
3

我正在製作三星智能電視應用程序。我需要播放YouTube視頻。 有沒有人有任何想法如何做到這一點?我試過youtube js api,但是當功能playVideo()正在執行時,視頻剛開始加載但不能播放。 我有三星智能電視2012年,所以SDK是3.5三星智能電視播放Youtube視頻

回答

2

首先檢查您的YouTube視頻是否已授予訪問移動設備。

第二,您必須禁用該視頻上的廣告 - 因爲廣告視頻在電視設備上無法使用。

有時,playVideo()開始播放視頻後需要一段時間,尤其是當您綁定某些播放器事件時,請儘量等待一分鐘或一分鐘。

如果這不起作用,請將您的代碼粘貼到這裏 - youtube嵌入和您的JS調用,我會盡力幫助。

編輯

嘗試使用閃光燈嵌入像Samsung docs

作爲電影參數傳遞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

說播放當前線索/加載視頻。

+0

所以它沒有奏效。如果我等一會兒,視頻就會結束而不會播放。就像你看了視頻,但卡在第一幀。我使用google提供的[sfobject](http://code.google.com/p/swfobject/)。那麼我有一個div

,我在'handleShow()'上執行的代碼是'var params = {allowScriptAccess:「always」}; var atts = {id:「myytplayer」}; swfobject.embedSWF(「http://www.youtube.com/v/ ?enablejsapi = 1&playerapiid = ytplayer&version = 3」,「ytapiplayer」,「425」,「356」,「8」,null,null,params,的ATT);'。開始de視頻我使用'ytplayer.playVideo();' – codeTemplar 2012-07-26 09:03:29

+0

檢查我的編輯。希望它能幫助你。 – 2012-07-26 13:48:09

+0

非常感謝你,但有些東西不起作用,我不知道。我在代碼中實現了一些警報,以查看發生了什麼。所以當狀態是5時,視頻就不會啓動。我嘗試了不同的視頻,其中一些返回錯誤150.在論壇上,我發現這個錯誤發生在視頻不適合嵌入時。但我使用的視頻是新的,不會產生任何錯誤。它看起來像playVideo()不起作用。還有這些國家正在改變這個5,3,1。然後我打電話playVidee()當國家是1,再次沒有..任何想法? – codeTemplar 2012-07-26 15:53:45

0

我真的不應該告訴你們,是因爲你們就可以做出和我競爭的應用程序...但出了三星的挫折,我會告訴你:剛主持混賬東西作爲網頁服務器上的網頁(使用任何你喜歡的YouTube API,或者沒有API,只需在頁面加載時更改嵌入代碼),使用查詢字符串參數控制播放的視頻,然後將其嵌入到三星智能電視應用程序中。如果您嘗試嵌入不是網頁的應用,則YouTube會嚴格限制嵌入內容...因此,請堅持使用網頁,然後將網頁粘貼到應用中。

這是您需要在網絡瀏覽器中運行的三星智能電視上用於任何應用內內容的一般體系結構。三星瀏覽器是一款支持Flash的HTML5瀏覽器。三星智能電視應用程序允許IF網絡內容的絕對沒有安全限制。把2和2放在一起,你可以在這些美化的烤麪包機上做任何你想做的事......記住你想卸載這些IFrames(使用JQuery將SRC屬性設置爲「」是一個適當的方法來做到這一點)你改變場景,因爲他們不卸載自己,這些電視有很少的RAM。

玩得開心的傢伙:)

+0

供參考。此作品適用於帶廣告的視頻。 – 2013-08-20 20:42:55