Avatar billede kalleballe Nybegynder
04. november 2004 - 09:10 Der er 16 kommentarer og
1 løsning

totaltime og flv

Hej, - hvordan er det lige jeg får smidt total time af en streamet flv med over i flash så den kender denne parameter?
Jeg vil ikke bruge en ekstra variabel, - jeg mener man kan får noget metadata sendt med....

vh

KalleBalle
Avatar billede thulstrup Nybegynder
04. november 2004 - 09:43 #1
Det er ikke sikkert at din flv indeholder metadataen, det kommer an på hvilket program du har benyttet til at lave den med.

Kør den en tur genne Buraks FLV MetaData Injector, så skulle det gerne virke:
http://www.buraks.com/flvmdi/
Avatar billede kalleballe Nybegynder
04. november 2004 - 10:31 #2
danke, - smid lige et svar

vh

KalleBalle
Avatar billede thulstrup Nybegynder
04. november 2004 - 10:39 #3
så lidt
Avatar billede kalleballe Nybegynder
04. november 2004 - 10:49 #4
Ved du tilfældigvis hvordan jeg får stoppet lyden i min video men ikke filmen ;)

jeg bruger f.eks.:


on (release) {

   
    var m = this.myMedia;
   
   
   
   
    if(!m.playing)
    {
       
       
        m.play();
    }
   
   
           
}

til at styre play!

men hvad med lyd?
Avatar billede thulstrup Nybegynder
04. november 2004 - 11:17 #5
Prøv den her metode:

// Clip is the instance name of the movie clip
// that contains the video object "my_video".
_root.Clip.my_video.attachVideo(_root.myNetStream);
_root.Clip.attachAudio(_root.myNetStream);
var snd = new Sound("_root.Clip");
//To adjust the audio:
_root.snd.setVolume(100);
Avatar billede kalleballe Nybegynder
04. november 2004 - 11:23 #6
tak det er fint.

vh

KalleBalle
Avatar billede kalleballe Nybegynder
04. november 2004 - 12:53 #7
Det er som om at den ikke få fat i total time hver gang, - kender du det problem?

vh

KalleBalle
Avatar billede thulstrup Nybegynder
04. november 2004 - 13:58 #8
Yes, det har jeg været ude for.
Jeg løste det ved at lave et interval, der checker om videoen er større end 0px. Når videoen er det, kan du få duration hver gang.

Her er lidt kode, så du kan se ideen:

var FLVDuration:Number;
var metaDataID:Number;
var my_nc:NetConnection = new NetConnection();
my_nc.connect(null);
var my_ns:NetStream = new NetStream(my_nc);
my_video.attachVideo(my_ns);
my_ns.setBufferTime(0.1);
my_ns.play(videoURL);
var ref:MovieClip = this;
//
beginPlayer = function (obj:Object) {
    updateAfterEvent();
    if (my_video.width>0) {
        FLVDuration = obj.duration;
    }
    clearInterval(metaDataID);
}
//
my_ns.onMetaData = function(obj:Object) {
    metaDataID = setInterval(ref, 'beginPlayer', 30, obj);
};
Avatar billede kalleballe Nybegynder
04. november 2004 - 14:16 #9
Hej du og tak, - god idé.

Jeg vil helst bare bruge mit mediaplayback komponent som har navnet 'myMedia', jeg har dog lidt svært ved at få myMedia til at bruge NetStream methoder ;)

stop ();
//
pBar._visible = true;
pBar.mode = "manual";
pBar.setStyle ("themeColor", "0xB2BFD2");
myMedia.stop ();
checkProgress = function ()
{
    _root.getTimeNow = (_root.myMedia.playheadTime);
    _root.total = Math.floor (_root.myMedia.totalTime);
    _root.pBar.setProgress (_root.getTimeNow, _root.total-1);
    if (_root.pBar.percentComplete == 100)
    {
        _root.myMedia.stop ();
        _root.pBar.setProgress (0, _root.total);
        playKnap._alpha = 0;
        clearInterval (runCheck);
    }
};
playKnap.onRelease = function ()
{
    // Start Play Behavior
    runCheck = setInterval (checkProgress, 100);
    var m = _root.myMedia;
    this._alpha = 40;
    stopKnap._alpha = 0;
    if (!m.playing)
    {
        m.play ();
    }
    // End Play Behavior
};
stopKnap.onRelease = function ()
{
    clearInterval (runCheck);
    // Start Pause Behavior
    var m = _root.myMedia;
    this._alpha = 40;
    playKnap._alpha = 0;
    m.pause ();
    // End Pause Behavior
};
lydKnap.onRelease = function ()
{
    var snd = new Sound (_root.myMedia);
    //To adjust the audio:
    if (snd.getVolume () != 0)
    {
        snd.setVolume (0);
        this._alpha = 40;
    }
    else
    {
        snd.setVolume (100);
        this._alpha = 0;
    }
};

men det kan da godt være at jeg bliver nød til det for at få fat i alle de dejlige methoder....
Avatar billede kalleballe Nybegynder
04. november 2004 - 15:30 #10
nå, - nu har jeg lavet det sådan:

stop ();
//
pBar._visible = true;
pBar.mode = "manual";
pBar.setStyle ("themeColor", "0xB2BFD2");

checkProgress = function ()
{
    trace ("netStream.time = "+netStream.time);
    _root.getTimeNow = netStream.time;
   
    trace("_root.myMedia.totalTime = "+netStream.bytesTotal);
   
    _root.total = (netStream.bytesTotal/100000)+2;
    _root.pBar.setProgress (_root.getTimeNow, _root.total);
   
    if (_root.pBar.percentComplete == 100)
    {
        netStream.seek (0);
        netStream.pause ();
        _root.pBar.setProgress (0, _root.total);
        playKnap._alpha = 0;
        clearInterval (runCheck);
    }
};
playKnap.onRelease = function ()
{
    // Start Play Behavior
    runCheck = setInterval (checkProgress, 100);
    var m = _root.netStream;
    this._alpha = 40;
    stopKnap._alpha = 0;
    if (netStream.pause)
    {
        netStream.pause (false);
    }
    // End Play Behavior
};
stopKnap.onRelease = function ()
{
    clearInterval (runCheck);
    // Start Pause Behavior
    var m = netStream;
    this._alpha = 40;
    playKnap._alpha = 0;
    netStream.pause (true);
    // End Pause Behavior
};
lydKnap.onRelease = function ()
{
    //To adjust the audio:
    if (audio_sound.getVolume () != 0)
    {
        audio_sound.setVolume (0);
        this._alpha = 40;
    }
    else
    {
        audio_sound.setVolume (100);
        this._alpha = 0;
    }
};
// Create a NetConnection object
var netConn:NetConnection = new NetConnection ();
// Create a local streaming connection
netConn.connect (null);
// Create a NetStream object and define an onStatus() function
var netStream:NetStream = new NetStream (netConn);
netStream.onStatus = function (infoObject)
{
    status_txt.text += "Status (NetStream)"+newline;
    status_txt.text += "Level: "+infoObject.level+newline;
    status_txt.text += "Code: "+infoObject.code+newline;
};
// Attach the NetStream video feed to the Video object
myMedia.attachVideo (netStream);
this.createEmptyMovieClip ("flv_mc", this.getNextHighestDepth ());
flv_mc.attachAudio (netStream);
var audio_sound:Sound = new Sound (flv_mc);
// Set the buffer time
netStream.setBufferTime (2);
// Begin playing the FLV file
netStream.play ("video/video.flv");
netStream.seek (0);
netStream.pause ();
Avatar billede kalleballe Nybegynder
04. november 2004 - 15:35 #11
ups det virker jo ikke :(
Avatar billede kalleballe Nybegynder
04. november 2004 - 15:36 #12
altså:
checkProgress = function ()
{
    trace ("netStream.time = "+netStream.time);
    _root.getTimeNow = netStream.time;
   
    trace("_root.myMedia.totalTime = "+netStream.bytesTotal);
   
    _root.total = (netStream.bytesTotal/100000)+2;
    _root.pBar.setProgress (_root.getTimeNow, _root.total);
   
    if (_root.pBar.percentComplete == 100)
    {
        netStream.seek (0);
        netStream.pause ();
        _root.pBar.setProgress (0, _root.total);
        playKnap._alpha = 0;
        clearInterval (runCheck);
    }
};
Avatar billede thulstrup Nybegynder
05. november 2004 - 10:07 #13
Hvad er det helt præcist det ikke virker?
Avatar billede kalleballe Nybegynder
05. november 2004 - 10:09 #14
_root.total

jeg kan ikke få totalTime i min netStream udgave, - myMedia.totalTime er nu undefined, i modsætning til før da jeg bare brugte komponentet. Men hvis jeg bruger komponentet så kan jeg ikke sætte buffertiden eller hva??
Avatar billede thulstrup Nybegynder
05. november 2004 - 10:26 #15
Vi er enige om at det er længden af flv'en i sekunder du gerne vil ha', ikke?
Så smide det her sidst i din kode:

getDuration = function (obj:Object) {
    updateAfterEvent();
    FLVDuration = obj.duration;
    if (FLVDuration>0) {
        clearInterval(metaDataID);
        trace("FLV'en er lige præcis: "+FLVDuration+" sek lang :o)");
    }
};
this.netStream.onMetaData = function(obj) {
    metaDataID = setInterval(_root, 'getDuration', 30, obj);
};
Avatar billede kalleballe Nybegynder
05. november 2004 - 10:47 #16
jammen nu er den der jo, - tak igen!
Avatar billede thulstrup Nybegynder
05. november 2004 - 10:54 #17
så lidt - igen ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester