2009-11-24 4 views
1

Je suis très novice dans Flash et ActionScript. J'essaye simplement de jouer un fichier FLV. J'ai ce qui suit:Lecture de FLV dans ActionScript 2

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(); 
} 
} 

Je reçois le message de trace "Terminé" mais pas de lecture vidéo. J'ai simplement une boîte noire dans la fenêtre du navigateur. Est-ce que quelqu'un peut m'aider? Merci beaucoup!

-Nick

+0

pouvez-vous ajouter my_ns.onStatus = function (o: Object) {trace (o.code); } à votre code et ajouter la sortie à votre question? – Les

Répondre

1

Vous devriez vérifier pour vous assurer que vous avez deux clips dans la bibliothèque qui ont les ID de liaison que vous essayez de joindre.

Vous aurez besoin à la fois:

VideoContainer 
VideoClip 
0

nouveau est un mot-clé, de sorte que vous ne pouvez pas l'utiliser comme un nom de fonction !!

-1

J'espère que .. le code ci-dessous .. .. va fonctionner très bien ..

J'utilise le .. preBuildCommand .. mise en jachère dans mon projet .. FAG EXPLORER FLV.fdp

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

"bibliothèque/video.swf"

A suivre

FAG = GRATUIT JEUX UNIVERSITAIRES

Lorsque j'utilise la ligne

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

"bibliothèque/video.swf"

puis

le projet doit contenir les lignes ci-dessous

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

Observations:

swfmill .exe .. crée .. le fichier .. video.swf .. dans le répertoire .. library

(bibliothèque .. est .. placé à côté du fichier de projet)

swfmill.exe utilise le fichier .. video.xml .. .. pour créer le fichier .. video.swf

le code du fichier .. video.swf .. est

<?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> 

a suivre

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 

/** * Le code initial est de http://www.flashdevelop.org/community/viewtopic.php?t=321 * Partie 3. Les vidéos en streaming FLV (FlashDevelop/SWFMILL uniquement)

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; 

//} 

} 
Questions connexes