2013-06-25 50 views
1

我想要獲取youtube播放列表並在IOS上播放視頻。我的應用可以在Android和Flex模擬器上正常工作,但不適用於IOS。看起來好像在IOS here中加載swfs是有限制的。如何使用Actionscript 3在IOS上播放youtube視頻3

我正在使用as3-youtube-data-api。任何人都可以指導我如何在iOS上使用as3(Flash Builder 4.5)嵌入或播放YouTube視頻,或者有其他方式嗎?

注意:在應用程序商店中有「思科技術支持」應用程序,它會播放嵌入到應用程序中的YouTube視頻。

更新 可以VideoDisplay工作,因爲我的播放列表沒有mp4嗎?

更多更新

這是多麼至少m個能夠發揮對IOS(read this)YouTube視頻,但再次機器人給了我黑色的屏幕。我能用這種方法做些什麼嗎?請給出你的建議。由於

var webView:StageWebView; 
public function init():void 
{ 
    NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE; 

    webView = new StageWebView(); 
    webView.viewPort = new Rectangle(0, 35, this.stage.stageWidth, this.stage.stageHeight); 
    webView.stage = this.stage; 
    var htmlString:String = "<!DOCTYPE HTML>" + 
     "<html><body><script>" + 
     "var tag = document.createElement('script');"+ 
     "tag.src = \"http://www.youtube.com/player_api\";"+ 
     "var firstScriptTag = document.getElementsByTagName('script')[0];"+ 
     "firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);"+ 
     "var player;"+ 

     "function onYouTubeIframeAPIReady() {"+ 
      "player = new YT.Player('player', {"+    
       "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>"+ 
     "<iframe id=\"player\" type=\"text/html\" width=\"100%\" height=\"400\" src=\"http://www.youtube.com/embed/g-YW2jkd-Ac\" frameborder=\"0\"></iframe>" + 
     "</body></html>"; 
    webView.loadString(htmlString); 
    //webView.loadURL("http://www.youtube.com/embed/M7lc1UVf-VE"); 
} 
public function dispose():void { 
    try { 
     webView.stage=null; 
    } catch (e:Error) { trace("error")} 
} 

使用​​我可以識別操作系統,並通過iOS和Android的工作我的方式。

再次,我們cannot invoke javascript in IOS,所以我無法停止視頻。

更新

這就是我所做的IOS。它提供了內置的播放器控件

public function initIOS():void 
{ 
NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE; 

webView = new StageWebView(); 

webView.viewPort = new Rectangle(0, 40, this.stage.stageWidth, this.stage.stageHeight-40); 

webView.stage = this.stage; 
webView.loadURL("http://www.youtube.com/embed/"+data.videoId+""); 
} 

回答

0

正如您在提供的鏈接中指出的那樣,您無法在iOS上運行actionscript swfs。不久之後,Android上也無法做到這一點。 VideoDisplay也不起作用,因爲它是動作。

要在iOS上播放Youtube視頻,您可以使用(例如您提及的應用程序和iOS上的其他基於YouTube的應用程序)native Objective-C libraries,這將完全支持獲取播放列表和播放視頻;或者也可以嘗試在Web應用程序中使用JavaScript客戶端。

+0

感謝您的回覆。我試過[這](https://developers.google.com/youtube/iframe_api_reference#Getting_Started),它允許我在IOS上播放視頻,但不知道如何停止視頻和其他內容,這種iframe方法是否正確?對此有何建議?我已經更新了我的問題,可以在IOS上播放youtube視頻。 – abi1964

+0

我正在使用[as3-youtube-data-api](https://code.google.com/p/as3-youtube-data-api/),然後使用[本機Objective-C庫for youtube]( https://developers.google.com/youtube/v3/)。任何幫助? – abi1964

+0

不,as3-youtube-data-api不使用Objective-C ...它使用Actionscript,它不能在iOS上運行。如果必要的JavaScript控制播放器不適合你,你需要用XCode和Objective-C編寫一個本地iOS應用程序。但是,JavaScript方法應該可以工作,如果你使用類似phonegap的東西,你應該能夠跨平臺。關於這樣做有很多關於堆棧溢出的問題。我會盡快找出幾個參考文獻。 – jlmcdonald

相關問題