Beiträge: 23 Wohnort: Kassel Registriert: Oct 2009
sound.position extrem ungenau
Hallo.
sound.position sollte ja millisekunden zurückgeben. ich habe einen 2 sekunden wave-loop. sollte ich also bei trace(wipp_loop.position); werte von 0 bis 2000 erhalten. bei mir sieht es allerdings so aus:
Beiträge: 2855 Wohnort: Köln Registriert: Oct 2007
Hallo,
Versuch mal "Math.floor(wipp_loop.position/1000)" damit rundest du ab.. dann bekommst du 0 oder 1.
Wie soll Flash die Position in MS genau ausgeben, wenn es mit 20 fps läuft?public Weltformel(Problem){
if (Problem gelöst) return Lösung;
else Weltformel(kleiners Problem);
}
Beiträge: 23 Wohnort: Kassel Registriert: Oct 2009
Themenautor/in
das Problem bei "Math.floor(wipp_loop.position/1000)" ist, dass ich dann zwar eine 0 und eine 1 bekomme, allerdings ganz oft die 0 in der ersten sekunde und ganz oft die 1 in der zweiten sekunde. ich brauch aber einen Impuls auf den exakten Startmoment der geloopten WAVE zwecks exakten synchronisierens einer flv."Die Frage ist, wie ist die Antwort?"
hi,
ich bezweifle dass du das synchron hinkriegst, da zb auch die performance vom client eine wesentliche rolle dabei spielt. wenn du gaanz kleine files hast, könnte das evtl. noch klappen...
was du allerdings genau vorhast ist aus deinen beiträgen nicht ersichtlich... wie lange ist denn der sound/ die flv? wann soll wo was passieren?lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
Beiträge: 23 Wohnort: Kassel Registriert: Oct 2009
Themenautor/in
Was ich vorhabe:
ich ahbe vor einiger Zeit zwei interaktive Stopmotionfilme mit JAVA (Processing) programmiert.
hier kann man sich die JAVA Applets anschaun: interactive-stopmotion.com
Jetzt will ich die filme in as2.0 übersetzen. grund dafür: JAVA hat von windows nur ein geringen Speicher zugewiesen, zu klein für die vielen frames.
warum nicht in as3.0 übersetzen? weil ich damit keine WAVES verwenden kann und MP3 zu ungenau ist.
so ein teil eines Stopmotionfilchens besteht zb. aus einer 2 sekunden langen wav und einem 16 frames langen filmchen (flv). also einem 2 sekunden LOOP!
in JAVA hatte ich einen counter laufen der bild und ton synchronisierte.
in flash bin ich zu dem schluss gekommen das man einen sound nur sauber loopen kann wenn man es so macht wie im skript (siehe oben). direkt auf die timeline und dann gotoandplay(1) hat man zb. immer einen kleinen rucker.
also ist die geloopte WAVE meine referenz auf die ich das bild synchronisieren muss.
dafür brauche ich eine halbwegs saubere "1" wenn die wave los geht.
"onSoundComplete" kann ich hierfür auch nicht nehmen, da das nicht nach jedem mal abspielen auftritt sondern erst nach allen loop-wiederholungen.
entschuldigt die ausführlichkeit dieser antwort..."Die Frage ist, wie ist die Antwort?"
Beiträge: 2855 Wohnort: Köln Registriert: Oct 2007
Hallo,
ich glaube du hast den falschen Ansatz. Auf gut deutsch willst du Flash dazu benutzen um einen Film beim User zu "schneiden", performanctechnisch und von der Synchronität ist das gelinde gesagt mist.
Also am besten deine Bilder (oder kleinen Filmchen) in ein Filmschnittprogramm rein und dann das Ganze als flv oder mp4 als kompletten Film erstellen.
Wenn du unbedingt bei der "stückelei" bleiben möchtest, dann nutzt du am besten CuePoints - die setzt du in deine FLV-Datei und wenn dein Film dort ist, kannst du eine aktion ausführen, z.B. einen Sound abspielen. Das wäre die einzige Möglichkeit Bild und Ton halbwegs synchron hin zu bekommen.public Weltformel(Problem){
if (Problem gelöst) return Lösung;
else Weltformel(kleiners Problem);
}
Beiträge: 23 Wohnort: Kassel Registriert: Oct 2009
Themenautor/in
ok. flv mit integriertem sound, is klar das da der sound an sich synchron ist.
problem dabei ist aber das ganze zu loopen.
und mit loopen mein ich, dass die flv (sagen wir mal sie ist 2 sekunden lang)
auch wirklich millisekundengenau ohne latenz von vorne beginnt.
es muss einfach ein sehr sauberer, stabiler loop sein.
ich lade euch gerne mal eine 2 sekunden flv mit sound hoch
und würde mich freuen wenn jemand eine lösung finden kann.
Beiträge: 2855 Wohnort: Köln Registriert: Oct 2007
Hallo,
Wenn du das ganze nicht als eine große FLV-Datei machen möchtest, dann benutz die CuePoints - mit denen kannst du dann deinen Sound synchronisieren - ist zwar ne fummelei - aber so ist das, wenn du das stückeln möchtest!public Weltformel(Problem){
if (Problem gelöst) return Lösung;
else Weltformel(kleiners Problem);
}
setInterval(ausgabe, 1);
var wipp_loop:Sound = new Sound();
wipp_loop.attachSound("wipp_loop_sound");
wipp_loop.start(0,99);
var t = getTimer();
var tim = 0;
var starter:Boolean = true;
var wipp_mc=this.createEmptyMovieClip("w_mc",0);
w_mc.attachMovie("wipp_mc","w_mc",1);
function ausgabe (){
//trace(tim);
tim= getTimer()-t;
if (starter){
trace("START!");
wipp_mc.gotoAndPlay(1);
starter = false;
}
if (tim >=2000){
trace(tim);
starter =true;
t =getTimer();
}
}
so sollte es evtl rund laufen, allerdings ist dabei der MC nicht unmittelbar mit dem Sound synchronisiert.
sieht vielleicht irgendjemand meinen Fehler beim "attachMovie" irgendwie bekomme ich den MC nicht auf die Bühne."Die Frage ist, wie ist die Antwort?"
Beiträge: 23 Wohnort: Kassel Registriert: Oct 2009
Themenautor/in
ich versuche es jetzt doch mit AS3. die mp3s lassen sich erstaunlicher weise doch recht rund loopen. Danke für Eure Antworten!"Die Frage ist, wie ist die Antwort?"