SWiSH Forum Strona Główna SWiSH Forum
Forum użytkowników programów SWiSH

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload

Poprzedni temat «» Następny temat
Ładowanie zewnętrznego pliku FLV
Autor Wiadomość
tjindy 
Praktyk


Wiek: 46
Dołączył: 12 Wrz 2010
Posty: 23
Skąd: Konin
Wysłany: Sob 04 Lut, 2012 09:33   Ładowanie zewnętrznego pliku FLV

Witam serdecznie,

jak zwykle poległem przy - wydawać by się mogło - prostym temacie.

W skrócie: wymóżdżyłem sobie na stronie animację przedstawiającą ćwiczące postacie. Film zapisałem w FLV - waga 10 MB. Zrobiłem sobie kontenerek (klip.swf) dla filmu który go czyta. Następnie w swej naiwności próbowałem za pomocą drugie swf`a (loadera) czytać klipa - i wsio fajnie tylko że loader nie działa tak jak sądziłem.
Po prostu zlicza wielkość samego klip.swf (22 kB) - a już nie "przypisanego" w nim zewnętrznego pliku FLV.
Być może nawet to logiczne.

Wracając jednak do tematu - czy ktoś mógłby poratować mnie wiedzą na ten temat jak sobie poradzić w takiej sytuacji? Starałem się przekopać fora swishmaxa - jednakże jakoś nie potrafię sklecić niczego sensownego. Podejrzewam jednak że może mieć to związek z poleceniami sterującymi strumieniowaniem ;)

W wersji bez loadera - przy posiadaniu w miarę szybkiego łącza klip się wyświetla, mogę go potem loopować, wstawiać zdarzenia (na linii czasu oczywiście). Gorzej gdy osoba posiada wolne łącze - wtedy klip się zatrzymuje, gubi ramki, widać błędy w kodowaniu/kwantyzacji.
Stąd nieodzownym elementem byłoby puszczenie klipa po jego załadowaniu oraz moja gorąca prośba o nakierowanie toku myślenia mego we właściwym kierunku :)

Pozdrawiam
Janusz T.

PS. Link do strony gdzie jest animacja: www.imxs.pl/cardiofit/fit
 
     
^Januszr 



Pomógł: 216 razy
Dołączył: 11 Maj 2005
Posty: 1854
Skąd: Stolyca od urodzenia
Wysłany: Sob 04 Lut, 2012 10:27   

EXTERNAL FILE PRELOAD:

http://blog.swishzone.com/?p=47
oraz
http://blog.swishzone.com/?p=3426

Jak załączysz kawałek tego SWI, z którym masz problemy to pewnie uda mi się coś wymyślić. A tak na szybko to... nachodzi mnie jedna myśl: po cholerę Ci flv skoro masz postacie jednobarwne, które aż prosi się do vektora przerysować?
_________________
Niestety używam nieoficjalnych wersji Swish, które można zassać z forums.swishzone.com - jest na szczycie listy w BugsForum.
 
     
tjindy 
Praktyk


Wiek: 46
Dołączył: 12 Wrz 2010
Posty: 23
Skąd: Konin
Wysłany: Sob 04 Lut, 2012 13:32   

Tak, przeglądałem te przykłady i nawet starałem się coś z tego zrobić.

Ale ok, wrócę jeszcze raz do kodu i postaram się podesłać coś sensownego - chociaż przy moim poziomie umiejętności będzie niezły ubaw :D

Januszr napisał/a:
EXTERNAL FILE PRELOAD:
...CIACH...
..nachodzi mnie jedna myśl: po cholerę Ci flv skoro masz postacie jednobarwne, które aż prosi się do vektora przerysować?


Dobrze postawione pytanie - moja riposta brzmi: jakim programem mogę trace`ować animację? I to tak abym miał wektorek ? Lub też: rozbić animację na klatki i potem zamieniać na wektor... ?

Pozdrawiam
Janusz T.
 
     
^Januszr 



Pomógł: 216 razy
Dołączył: 11 Maj 2005
Posty: 1854
Skąd: Stolyca od urodzenia
Wysłany: Sob 04 Lut, 2012 14:10   

Nie wiem :) Ta animacja wygląda jakby była zrobiona w wektorach a potem zapisana jako AVI :)
Był jednak taki program... Ale nie pomogę a tym.
Anyway, jest od groma programów do zapisu filmu do pojedynczych klatek: np SwishMax4, jednak może jak wpiszesz w wyszukiwarkę "avi t obmp" to znajdziesz więcej.
Co do zamiany bmp na vektora: Macromedia flash 5, corel trace, i znowu: w wyszukiwarkę: bmp to vector :)
A może nawet znajdziesz "avi to vector?

Tutaj raczej ubaw jest jak ktoś nie próbuje zrobić tylko uważa, że to koncert życzeń. Nie wstyd nie wiedzieć, wstyd udawać, że się wie :P
_________________
Niestety używam nieoficjalnych wersji Swish, które można zassać z forums.swishzone.com - jest na szczycie listy w BugsForum.
 
     
tjindy 
Praktyk


Wiek: 46
Dołączył: 12 Wrz 2010
Posty: 23
Skąd: Konin
Wysłany: Sob 04 Lut, 2012 14:33   

Animacja była na blueboxie - czyli zielonym ekranie :D
W Sony Vegas dałem chromakey + delikatny glow, dorzuciłem tło wycięte z tworzonego szablonu. Zapisałem do do xvida -> convert do FLV.
W swishmax4 dodałem do klipu maskę (to fioletowe ustrojstwo z dołu). I pełen nadziei wrzuciłem na serwa. U mnie fajnie śmiga - no ale mam niemałe łącze. Przetestowałem u innych i (cenzura).

Macromedia i corel odpadają - nie mam licencji i mnie nie stać.
Zostaje mi raczej nauczenia się poprawnego ładowania plików FLV, z pomocą tegoż forum. Co jest chyba najlepszym rozwiązaniem - będzie doświadczenie no i inne ludziska też zapewne skorzystają :)

Ok, lecę z psem i po zakupy, a potem siadam do skryptowania. Jak już coś będę miał to zapodam :)

Pozdrawiam
Janusz T.

PS. Zlecenie jest za grosze, ale to akurat bardziej ambitne podejście tfurcy niż zarobek ;)
 
     
krzywy105 
Doradca


Pomógł: 1 raz
Dołączył: 09 Kwi 2011
Posty: 68
Skąd: Małopolska
Wysłany: Sob 04 Lut, 2012 15:52   

Nie wiem czy dobrze rozumie problem ale czy nie możesz zrobić preloadera do ładowanego pliku z filmikiem?
czyli coś w rodzaju:

Kod:

 p = animacja.getPercentLoaded();
      if(p < 100) {_parent.animacyjny.prevFrameAndPlay ();}


oczywiście wcześniej ładujesz plik do animacja przez LoadMovie
 
     
tjindy 
Praktyk


Wiek: 46
Dołączył: 12 Wrz 2010
Posty: 23
Skąd: Konin
Wysłany: Sob 04 Lut, 2012 16:05   

krzywy105 napisał/a:
Nie wiem czy dobrze rozumie problem ale czy nie możesz zrobić preloadera do ładowanego pliku z filmikiem?
czyli coś w rodzaju:

Kod:

 p = animacja.getPercentLoaded();
      if(p < 100) {_parent.animacyjny.prevFrameAndPlay ();}


oczywiście wcześniej ładujesz plik do animacja przez LoadMovie


Gdybym miał animację zaimportowaną do swf`a to tak, ale wolę strumieniować plik zewnętrzny bo ma lepszą jakość. W podanym przez Ciebie przykładzie swf miałby wtedy wielkość, po kompresji, powiedzmy 2-3 MB i wtedy to by zadziałało. Zresztą, pierwsze próby tak właśnie czyniłem.
Ok, biorę się do pracy, rodacy. Albo mnie zmorzy kod albo sobotni wspomagacz ;)
 
     
krzywy105 
Doradca


Pomógł: 1 raz
Dołączył: 09 Kwi 2011
Posty: 68
Skąd: Małopolska
Wysłany: Sob 04 Lut, 2012 16:35   

Wydaje mi się że klasa loadMovie obsługuje pliki .flv i możesz przecież tak sprawdzać procent załadowania tego pliku.
 
     
tjindy 
Praktyk


Wiek: 46
Dołączył: 12 Wrz 2010
Posty: 23
Skąd: Konin
Wysłany: Sob 04 Lut, 2012 16:52   

krzywy105 napisał/a:
Wydaje mi się że klasa loadMovie obsługuje pliki .flv i możesz przecież tak sprawdzać procent załadowania tego pliku.


Hmmm.. jak na razie czyta wszystko inne bo testuję na jpg, png, swf. Przy próbie FLV preloader zjeżdża mi do 1 % i nic....
Teraz zrobiłem tak że preloader czyta swf w którym jest zlinkowany FLV.
Test tegoż tutaj -> http://www.imxs.pl/test/

Jeśli ktoś ma słabsze łącze to będę wdzięczny za opinie. Jeśli pierwsza pozycja faktycznie się zacznie odtwarzać po załadowaniu to jesteśmy w domu. Jeśli jednak zacznie się rwać - to znaczy że idę na spacer przemyśleć moje życie ;)

Załączam SWI - które niczym się nie różni od tego co już mamy na stronie podanej przez JanuszR.

PS.
U mnie te 10 MB powinno się ładować ok 3 sek. (optymistyczny wariant). Wygląda na to że w nosie ma loadera tak czy owak. Czyta "wagę" samego SWFa.
 
     
krzywy105 
Doradca


Pomógł: 1 raz
Dołączył: 09 Kwi 2011
Posty: 68
Skąd: Małopolska
Wysłany: Sob 04 Lut, 2012 17:46   

Chyba jednak loadMovie nie obsługuje .flv

W jaki sposób wczytujesz zewnętrzny flv? NetConnection ,NetStream z tego co widzę ma wszystko do obsługi buforowania itd, ale niestety jeszcze tego nie stosowałem więc nie bardzo pomogę.
 
     
tjindy 
Praktyk


Wiek: 46
Dołączył: 12 Wrz 2010
Posty: 23
Skąd: Konin
Wysłany: Sob 04 Lut, 2012 18:02   

krzywy105 napisał/a:
Chyba jednak loadMovie nie obsługuje .flv

W jaki sposób wczytujesz zewnętrzny flv? NetConnection ,NetStream z tego co widzę ma wszystko do obsługi buforowania itd, ale niestety jeszcze tego nie stosowałem więc nie bardzo pomogę.


W pierwszej wersji wrzuciłem flv do swisha i sam mi zlinkował flv jako zewnętrzne media. Zapisałem to jako klip.swf. Potem chciałem do tego dorobić preloadera - i zaczęły się schody.

Na stronie zamieściłem w 3 pozycji kod ze swishzone:
Kod:

onSelfEvent (load) {
    var listener:Object = new Object();
}
onSelfEvent (load) {
    play = "true";
}
onFrame (5) {
    listener.onLoadInit = function(targetMC:MovieClip):void {
        targetMC.obj._width = 480;
        targetMC.obj._height = 300;
        var connection:NetConnection = new NetConnection();
        connection.connect(null);
        var stream:NetStream = new NetStream(connection);
        stream.onStatus = function(info) {
            outTFB = "";
            outTFB += "Stream Status is, \n";
            outTFB += "Event: " + info.code + "\n";
            outTFB += "Type:  " + info.level;
        }
        stream.onMetaData = function(infoObject) {
            metaTFB = "";
            for(var prop:String in infoObject) {
                metaTFB += prop + ": " + infoObject[prop] + "\n";
            }
        }
        targetMC.obj.attachVideo(stream);
        //loads flv file
        stream.playIt = stream.play;
        stream.playIt("Fitnes2.flv");
    }
}
onFrame (5) {
    var MCLoader:MovieClipLoader = new MovieClipLoader();
    MCLoader.addListener(listener);
    MCLoader.loadClip("videoObject.swf", "videoObjectMC");
}
onFrame (6) {
    stream.onMetaData = function(evt:Object):void
    {
        duration = evt.duration;
    }
    stream.onStatus = function(evt:Object):void
    {
        if (this.time > 0 && this.time >= (duration))
        {
            gotoSceneAndPlay("<current scene>",40);
            delete this.onStatus;
        }
    }
}
onFrame (30) {
    stop();
}
onFrame (39) {
    stop();
}
onFrame (46) {
    stop();
}

I działa jak widać.
Jako że podobno "play" jest funkcją specjalną Swishmaxa stąd zrobiono podmiankę stream.playIt.. ale mi swish wywala błędy.

Teraz staram się zrozumieć kod do strumieniowania i jakoś to ugryźć. Temat ciekawy i sądzę że wielu powinien zainteresować.
Niestety, ja w AS kiepski jestem do "bulu" także jak ktoś pomoże rozszyfrować kod to będę wdzięczny :)
 
     
espe1
Profesjonalista


Pomógł: 16 razy
Dołączył: 02 Lis 2011
Posty: 175
Skąd: łódzkie
Wysłany: Sob 04 Lut, 2012 22:50   

W komponentach swisha masz kilka wersji odtwarzaczy flv (proste, skomplikowane).
Po przeciągnięciu na scenę, można je modyfikować w parametrach (wielkość, kolory itd)
W parametrach wpisujemy też nazwę pliku (plik lokalny w tym samym katalogu) lub adres http (plik zewnętrzny).

Jeśli ktoś ma bardzo słabe łącze (typu bezpłatne Aero2), to mu nic nie pomoże przy pliku 10mb.
 
     
tjindy 
Praktyk


Wiek: 46
Dołączył: 12 Wrz 2010
Posty: 23
Skąd: Konin
Wysłany: Nie 05 Lut, 2012 17:10   

espe1 napisał/a:
W komponentach swisha masz kilka wersji odtwarzaczy flv (proste, skomplikowane).
Po przeciągnięciu na scenę, można je modyfikować w parametrach (wielkość, kolory itd)
W parametrach wpisujemy też nazwę pliku (plik lokalny w tym samym katalogu) lub adres http (plik zewnętrzny).

Jeśli ktoś ma bardzo słabe łącze (typu bezpłatne Aero2), to mu nic nie pomoże przy pliku 10mb.


No i dlatego lepiej mieć kontrolę nad plikiem z poziomu AS niż playera. :)
Na ten skromny przykład - można zliczać czas ładowania i jeśli przekroczy "ileśtamsekund" - dać alternatywny swf z małą wagą..

Jutro wracam do tematu i będę grzebał dalej :)
Pozdrawiam
 
     
krzywy105 
Doradca


Pomógł: 1 raz
Dołączył: 09 Kwi 2011
Posty: 68
Skąd: Małopolska
Wysłany: Nie 05 Lut, 2012 17:19   

Kod:

var netConn:NetConnection = new NetConnection();

netConn.connect(null);

var netStream:NetStream = new NetStream(netConn);

my_video.attachVideo(netStream);

netStream.setBufferTime(5);

netStream.play("sample.flv");



Zainteresował mnie temat i doszedłem do tego co powyżej. Ten kod pozwala odtwarzać strumieniowo zewnętrzny .flv z zachowaniem właśnie takich parametrów jak czas buforowania itd.
Ważne:
1 my_video to obiekt widoczny w konspekcie wstawiony jako zewnętrzne media (wstaw -> zewnętrzne media) a nie "klip".
2. obiekt my_video musi mieć odznaczone "Użyj automatycznego skryptu" w właściwościach.

To tylko najprostszy przykład ale już rozbudowa nie powinna być problemem.
 
     
espe1
Profesjonalista


Pomógł: 16 razy
Dołączył: 02 Lis 2011
Posty: 175
Skąd: łódzkie
Wysłany: Nie 05 Lut, 2012 20:58   

tjindy napisał/a:

No i dlatego lepiej mieć kontrolę nad plikiem z poziomu AS niż playera. :)
Na ten skromny przykład - można zliczać czas ładowania i jeśli przekroczy "ileśtamsekund" - dać alternatywny swf z małą wagą..

Jutro wracam do tematu i będę grzebał dalej :)
Pozdrawiam



Nie miałbyś tylu problemów, gdybyś przekonwertował flv na swf. Mnóstwo darmowych konwerterów w sieci.
Zaraz zacznie ci się problem z powtarzaniem, bo pewnie chciałbyś loopować flv itd.
Z plikawi swf nie ma problemów: powtarzanie, preloadery, podmienianie plików itd.
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

SWiSH - Create Flash animaton the easy way

Powered by phpBB modified by Przemo © 2003 phpBB Group
Nowe zasady dotyczące cookies. Wykorzystujemy pliki cookies, aby nasz serwis lepiej spełniał Państwa oczekiwania. Można zablokować zapisywanie cookies, zmieniając ustawienia przeglądarki.
         
Strona wygenerowana w 0.32 sekundy. Zapytań do SQL: 15