2011-11-14 100 views
1

所以我在加載網絡視頻時遇到了AS2問題。AS2:沒有網絡視頻,只是音頻

my_vid = _root.createEmptyMovieClip("my_vid", _root.getNextHighestDepth()); 
var video:Video = new Video(); 
var nc:NetConnection = new NetConnection(); 
nc.connect(null); 
var ns:NetStream = new NetStream(nc); 
video.attachVideo(ns); 
my_vid.attachVideo(video); 

and later 
ns.play("http://localhost/video.mp4"); 

我實際上可以在背景中聽音頻,但由於某種原因,我看不到任何圖片。我只在沒有動畫片段的情況下嘗試了一個視頻,反過來一直只聽音頻。

我肯定做錯了,但是什麼?

回答

1

你的問題是你永遠不會把視頻對象附加到舞臺上。此行my_vid.attachVideo(video);什麼都不做,因爲MovieClip沒有一個名爲attachVideo的方法。

您需要在庫中創建視頻對象並將其添加到舞臺上。爲此,請按照IDE中的以下步驟操作:

  1. 單擊libray面板右上角的箭頭,然後從下拉列表中選擇New Video...
  2. 在對話框中,選擇Video (ActionScript-controlled)單選按鈕並單擊確定。
  3. 將新創建的視頻對象拖到舞臺上併爲其指定實例名稱(例如myVideo)。
  4. 在舞臺上選擇您的視頻對象,然後按F8從中創建一個新的符號。
  5. 將符號設置爲鍵入MovieClip,勾選Export for ActionScript複選框並給出標識符(例如videoContainer),然後按確定。
  6. 從舞臺上刪除符號,並將其保存在庫中。

現在,您的圖書館中有一件物品可以添加代碼,該代碼已包含可以工作的視頻對象。假設你使用了和上面相同的名字,你的代碼應該修改如下。

//attach the container from the library 
my_vid = _root.attachMovie("videoContainer", "my_vid" _root.getNextHighestDepth()); 
//create a reference to the video object inside the container 
var video:Video = my_vid.myVideo; 
var nc:NetConnection = new NetConnection(); 
nc.connect(null); 
var ns:NetStream = new NetStream(nc); 
video.attachVideo(ns); 
// 
// ... 
// 
ns.play("http://localhost/video.mp4"); 
+0

我保留了自己的代碼,最終確實有效。我目前正在移動設備上運行該程序,並且工作正常。我的猜測可能是編解碼器。謝謝您的幫助。無論如何,我仍然需要了解如何處理舞臺問題。 – nrm