1&1 Webhosting
Flashhilfe.de - Flash Community

sound.position extrem ungenau [Flash 9]

Forum > ActionScript 2.0 > sound.position extrem ungenau

 


AntwortenRegistrieren Seite1  

 26.10.2009, 21:33 
Benutzerbild von avi.Selch
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:

43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
136
136
136
136
136
136
136
136
136
usw.

hier mein code:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
setInterval(ausgabe, 1);
var wipp_loop:Sound = new Sound();
wipp_loop.attachSound("wipp_loop_sound");
wipp_loop.start(0,99);

function ausgabe (){
   trace(wipp_loop.position);
   if (wipp_loop.position == 1){
      trace("START!");
      }
}


ich brauche eine konstanten wert von 0 oder 1 um synchron einen mc zu starten!
DANKE FÜR ALLE HILFE!
"Die Frage ist, wie ist die Antwort?"
 26.10.2009, 23:29Re1
Benutzerbild von vindelFlashhilfe.de Moderator
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);
}
 26.10.2009, 23:49Re2
Benutzerbild von avi.Selch
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?"
 
nicht sichtbar bei eingeloggten Mitgliedern
 27.10.2009, 13:39Re3
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: Apr 2004

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...
 27.10.2009, 15:25Re4
Benutzerbild von avi.Selch
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?"
 27.10.2009, 18:58Re5
Benutzerbild von vindelFlashhilfe.de Moderator
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);
}
 
nicht sichtbar bei eingeloggten Mitgliedern
 27.10.2009, 21:07Re6
Benutzerbild von skoda
Beiträge: 1152
Wohnort: Boston MA
Registriert: Feb 2006

ja flv nud net stream
da kann man events abfragen und timen

aber so stueckelei is in flash nicht der knueller

wenn bei mir sound und ani synchron sein soll

flv mit netstream

sogar wenns nur ne reine soundfile is
no one died when clinton lied
 28.10.2009, 12:37Re7
Benutzerbild von avi.Selch
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.

lg
"Die Frage ist, wie ist die Antwort?"
 28.10.2009, 17:48Re8
Benutzerbild von vindelFlashhilfe.de Moderator
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);
}
 28.10.2009, 22:57Re9
Benutzerbild von avi.Selch
Beiträge: 23
Wohnort: Kassel
Registriert: Oct 2009

Themenautor/in

Danke für die antworten. Ich will es jetzt mit get Timer versuchen:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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?"
 29.10.2009, 20:04Re10
Benutzerbild von avi.Selch
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?"
 
Themen
Ähnliche Beiträge zum Thema
mit sound.position arbeiten [Flash 10] 01.08.2009 - 111master111
 

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de