1

我对 Flash 和 Actionscript 很陌生。我试图简单地播放 FLV 文件。我有以下内容:

import flash.MovieClip;
import flash.Video;
import flash.NetConnection;
import flash.NetStream;


class Program {
private var container_mc : MovieClip;
private var video_mc : Video;


public function new() {


   var mc : flash.MovieClip = flash.Lib.current;

          container_mc =  flash.Lib._root.attachMovie("VideoContainer", "container_mc", 0);

          container_mc.attachMovie("VideoClip", "video_mc", 1);

    var my_nc:NetConnection = new NetConnection();

    my_nc.connect(null);

    trace(my_nc.isConnected);

    var my_ns:NetStream = new NetStream(my_nc);

    //my_ns.setBufferTime(1);



    container_mc.video_mc.attachVideo(my_ns);

    my_ns.play("default.flv"); 

    trace("Done"); 
}
 public static function main()
 {
     new Program();
 }
}

我收到“完成”跟踪消息,但没有视频播放。我只是在浏览器窗口中有一个黑框。有人可以帮我吗?万分感谢!

-缺口

4

3 回答 3

1

您应该仔细检查以确保库中有两个具有您尝试附加的链接 ID 的影片剪辑。

你需要两个:

VideoContainer
VideoClip
于 2009-11-24T15:15:57.987 回答
0

new 是关键字,所以不能作为函数名使用!!

于 2010-12-09T17:14:25.687 回答
-1

我希望..下面的代码..会..工作得很好..

我在我的项目中使用了 .. preBuildCommand .. FAG EXPLORER FLV.fdp

<preBuildCommand>"$(ToolsDir)\swfmill\swfmill.exe" simple "library/video.xml" 

“库/video.swf”

未完待续

FAG = 免费学术游戏

当我使用这条线时

<preBuildCommand>"$(ToolsDir)\swfmill\swfmill.exe" simple "library/video.xml" 

“库/video.swf”

然后

该项目必须包含以下行

<library>
    <asset path="Library\video.swf" />
</library>

观察:

swfmill.exe .. 创建 .. 文件 .. video.swf .. 到目录 .. 库中

(库..是..放在项目文件旁边)

swfmill.exe 使用文件 .. video.xml .. 创建 .. 文件 .. video.swf

文件 .. video.swf .. 的代码是

<?xml version="1.0" encoding="utf-8" ?>
<movie version="7">
<frame>
    <library>
        <clip id="VideoDisplay">
            <frame>
                <video id="VideoSurface" width="854" height="480"/>
                <place id="VideoSurface" name="video"/>
            </frame>
        </clip>
    </library>
</frame>
</movie>

未完待续

import util.VideoDisplay;

class util.Instances
{
function Instances() {

 //  _root.Fdisplay_MC

     _root.createEmptyMovieClip ("Fdisplay_MC", _root.getNextHighestDepth());

     _root.Fdisplay_MC._alpha = 50;

//
 var

 Fdisplay:VideoDisplay = new VideoDisplay(null, _root.Fdisplay_MC, "Fdisplay", 1);

_root.Fdisplay = Fdisplay; _root.Fdisplay._x = 5; _root.Fdisplay._y = 0;

    _root.Fdisplay.setVolume(100);

//
_root.Fdisplay_MC.onPress = function()

{
  if (_root.b_pause) _root.b_pause = 0 else _root.b_pause = 1;

     _root.Fdisplay.pause();

}// _root.Fdisplay_MC.onPress = function()

}// function Instances() {

}// class util.Instances

To be continued

/** * 初始代码来自http://www.flashdevelop.org/community/viewtopic.php?t=321 * 第 3 部分。流式传输 FLV 视频(仅限 FlashDevelop/SWFMILL)

    I put the fallowing code into the initial class util.VideoDisplay  


// attach audio
display.attachAudio(ns);    

audio_sound = new Sound(display);


/**
* Get time in video
*/

public function pos():Number

{
    return ns.time;
}


public function setVolume(vol:Number):Void

{               
    audio_sound.setVolume(vol);
}

private var audio_sound:Sound;  

*/

class util.VideoDisplay
{
//{ PUBLIC MEMBERS

/**
* 
* Create a new video display surface
*/

function VideoDisplay(targetURI:String, parent:MovieClip, name:String, depth:Number, initObj)

{           
    display = parent.attachMovie("VideoDisplay", name, depth, initObj);

    // create video stream

    nc = new NetConnection();
    nc.connect(targetURI);

    ns = new NetStream(nc);

    // attach the video stream to the video object
    display.video.attachVideo(ns);

    // attach audio
    display.attachAudio(ns);    

    audio_sound = new Sound(display);       

} // VideoDisplay(targetURI:String, parent:MovieClip, name:String, depth:Number, initObj)


/**
* Video surface dimensions
*/
function setSize(width:Number, heigth:Number):Void
{
    display.video._width = width;
    display.video._height = heigth;
}
/**
* Video clip position
*/
function setLocation(x:Number, y:Number):Void
{
    display._x = x;
    display._y = y;
}

/**
* Start streaming
* @param    url FLV file
* @param    bufferTime  Buffer size (optional) 
*/
public function play(url:String, bufferTime:Number):Void
{
    if (bufferTime != undefined) ns.setBufferTime(bufferTime);
    ns.play(url);
}
/**
* Pause streaming
*/
public function pause():Void
{
    ns.pause();
}
/**
* Seek position in video
*/
public function seek(offset:Number):Void
{
    ns.seek(offset);
}   

/**
* Get time in video
*/

public function pos():Number

{
    return ns.time;
}

/**
* Close the video
*/

public function close():Void

{
    ns.close();
}   

    public function setVolume(vol:Number):Void

{               
    audio_sound.setVolume(vol);
}

//}

//{ PRIVATE MEMBERS 

private var display:MovieClip;
private var nc:NetConnection;
private var ns:NetStream;

private var audio_sound:Sound;  

//}

}
于 2012-07-17T15:14:13.607 回答