Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-10-2006, 13:46   #1 (permalink)
Flash-Fan
 
Benutzerbild von Hoscakal
 
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 139
Preloader + mp3Player :(

Hallo !

ich habe mir einen Player gebaut, alles funtioniert ausser PRELOADER von einzellen Mp3-Dateien ?

Mein function :
PHP-Code:
LoadMP3 = function (soundNR) {
    
my_mp3.start(0);
    
my_mp3.loadSound(soundNRfalse);
    if (
ProzentL1 == 100) {
        
trace(ProzentL1);
        
my_mp3.loadSound(soundNRtrue);
        
efect_mc._visible true;
        
Play1 false;
    }
}; 
Hier könnt ihr den Player mal testen

Geändert von Hoscakal (18-10-2006 um 13:48 Uhr)
Hoscakal ist offline   Mit Zitat antworten
Alt 18-10-2006, 14:03   #2 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
PHP-Code:
LoadMP3 = function (soundNR) {
    
my_mp3.start(0);
    
my_mp3.loadSound(soundNRfalse);
    if (
ProzentL1 == 100) {
        
trace(ProzentL1);
        
my_mp3.loadSound(soundNRtrue);
        
efect_mc._visible true;
        
Play1 false;
    }
}; 
Naja, ähh, was soll das sein?
loadSound() kannst Du ruhig streamen lassen, also true setzen. Die start()-Methode brauchst Du dann nicht.
Wie wird ProzentL1 ermittelt? Du müsstest schon mit getBytesLoaded() und getBytesTotal() arbeiten und die geladenen Bytes von Deinem my_mp3 damit abfangen, das ganze in nem onEnterFrame() z.B.

Übrigens verstehe ich den Sinn Deiner if-Abfrage nicht so ganz. Wenn ProzentL1 100 ist, brauchst Du' ja nicht nochmal tracen , und warum lädst Du dasselbe File dann nochmal mit loadSound(xyz, true) rein?

--pp
~pyropete~ ist offline   Mit Zitat antworten
Alt 18-10-2006, 14:10   #3 (permalink)
Flash-Fan
 
Benutzerbild von Hoscakal
 
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 139
@ ~pyropete~



ohne IF funktioniert der preloader garnicht, Dann wird der sound einfach gestartet...

LoadSound( ... false ) ist erstnmal false, SONST funktioniert preloader ebenso nicht...

trace ? damit wolte nicht nur testen ob der varible noch lebt. sch.. auf trace ..

Start methode brauche ich um den Status zurückzusetzen!

willst du den FLA ?

Geändert von Hoscakal (18-10-2006 um 14:11 Uhr)
Hoscakal ist offline   Mit Zitat antworten
Alt 18-10-2006, 14:21   #4 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Behalt die Fla ...

ActionScript:
  1. LoadMP3 = function (soundNR) {
  2. my_mp3.loadSound(soundNR, true);
  3. this.onEnterFrame = function() {
  4. lkb = my_mp3.getBytesLoaded(); //gff. ein _parent vor das my_mp3
  5. tkb = my_mp3.getBytesTotal();
  6. if(lkb==tkb) {
  7. efect_mc._visible = true; //ggf. auch hier ein _parent
  8. Play1 = false;}
  9. }
  10. };

Nicht getestet,

--pp
~pyropete~ ist offline   Mit Zitat antworten
Alt 18-10-2006, 14:25   #5 (permalink)
Flash-Fan
 
Benutzerbild von Hoscakal
 
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 139
@ ~pyropete~

Danke für die schnelle Antwort ! ich werds gleich testen ..

Aber das mit dem _parent verstehe ich nicht so gut, bin anfänger ! kannst mir mal kurz erklären wofür man das braucht ? oder wann das man es braucht ?
Hoscakal ist offline   Mit Zitat antworten
Alt 18-10-2006, 14:26   #6 (permalink)
Home Flasher
 
Benutzerbild von Flash Doc
 
Registriert seit: Apr 2004
Ort: Engelskirchen
Beiträge: 345
Lightbulb Eigenschaften von Streaming-Sound

Irgendwie sieht dein Code nicht so aus, als würde er funktionieren. Daher mal eine kurze Erklärung zum Thema Streaming-Sound.

Seit Flash MX ist es möglich MP3-Sounds nachzuladen. Für die Ladekontrolle selbst hält die Sound-Klasse zwei Methoden bereit, deren Resultate du für die Ladekontrolle (Preloading) nutzen kannst. Desweiteren verfügt die Sound-Klasse über die Eigenschaften "duration" und "position", mit denen du das Abspiel von Streaming-Sound überwachen kannst. Die Eigenschaft "duration" gibt die Laufzeit des Sounds in Millisekunden an, "position" gibt die aktuell abgespielte Laufzeit an, also die Position des virtuellen Abspielkopfes.

Soweit die Theorie, jetzt etwas Praxis. Ich nehme mal an, dass die Liste, die unter dem eigentlichen Player steht, z.B. aus einer Datei befüllt wird. Wie du es wirklich gelöst hast, spielt aber jetzt erst mal kaine Rolle. Wichtig ist aber, dass zu einem Preloader eine Anzeige, z.B. eine Progressbar gehört. Die vermisse ich in deinem Player.

Zunächst musst du in deinem Code eine Sound-Instanz anlegen:
ActionScript:
  1. var sndPlayer = new Sound(this);
Das musst du genau einmal machen, nicht für jedes Stück, das abgespielt werden soll.
Jetzt wird der Sound, den der Besucher ausgewählt hat, geladen:
ActionScript:
  1. sndPlayer.loadSound(soundNR,true);
  2.  
  3. // Ladekontrolle
  4. this.onEnterframe = function() {
  5.   var geladen = sndPlayer.getBytesLoaded();
  6.   var total = sndPlayer.getBytesTotal();
  7.   var proc = Math.round(geladen*100/total);
  8.  
  9.   // Jetzt könntest du hier z.B. den Prozentwert als xScale einer Progressbar nutzen.
  10.  
  11.   // Abspielkontrolle
  12.   var ppos = sndPlayer.position;
  13.   var dur = sndPlayer.duration;
  14.  
  15.   // Nur wenn das Abspiel begonnen hat
  16.   if(ppos > 0) {
  17.     var sekpos = ppos/1000;   // Wir haben ja Millisekunden
  18.     var tmin = Math.floor(sekpos/60);
  19.     var tsek = sekpos%60;
  20.    
  21.     // Dieses jetzt in der Darstellung verwenden.
  22.   }
  23. }

Diese Playerfunktion habe ich so gebaut, dass sowohl die Ladekontrolle als auch die Abspielkontrolle darstellbar sind. Auf dieser Basis könntest jetzt in deiner Site ein Bild realisieren, dass dem Real-Player ähnelt. Dort wird die Ladekontrolle durch einen langsam von links nach rechts wachsenden grünen Balken und die Abpielposition durch einen Button symbolisiert.

Ich hoffe, ich konnte dir Hilfe zur Selbsthilfe geben.

Gruß vom Flash Doc
__________________
Erst Flash CS5 und dann Fläsch' Bier !!!
Flash Doc ist offline   Mit Zitat antworten
Alt 18-10-2006, 15:01   #7 (permalink)
Flash-Fan
 
Benutzerbild von Hoscakal
 
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 139
Hi Flash Doc

danke für die antwort ! ich habe dein Beispeil probiert, und jetzt ist proc = NAN ?



Zitat:
Wichtig ist aber, dass zu einem Preloader eine Anzeige, z.B. eine Progressbar gehört. Die vermisse ich in deinem Player.
das vermisse ich auch sehr Ist eigetlich eingebaut aber funktioniert halt nicht !
Hoscakal ist offline   Mit Zitat antworten
Alt 18-10-2006, 16:00   #8 (permalink)
Home Flasher
 
Benutzerbild von Flash Doc
 
Registriert seit: Apr 2004
Ort: Engelskirchen
Beiträge: 345
Kleine Änderung setze mal in Zeile 1 des hier geposteten AS
ActionScript:
  1. var sndPlayer = new Sound(this);

Eventuell ist es ratsam die Lade- und Abspielkontrolle so zu fassen:
ActionScript:
  1. // Ladekontrolle
  2.  
  3. this.onEnterframe = function() {
  4.   var geladen = sndPlayer.getBytesLoaded();
  5.   var total = sndPlayer.getBytesTotal();
  6.  
  7.   // Erst, wenn der Ladevorgang begonnen hat.
  8.   if(geladen > 4) {
  9.     var proc = Math.round(geladen*100/total);
  10.  
  11.     // Jetzt könntest du hier z.B. den Prozentwert als xScale einer Progressbar nutzen.
  12.  
  13.     // Abspielkontrolle
  14.     var ppos = sndPlayer.position;
  15.     var dur = sndPlayer.duration;
  16.  
  17.     // Nur wenn das Abspiel begonnen hat
  18.     if(ppos > 0) {
  19.       var sekpos = ppos/1000;   // Wir haben ja Millisekunden
  20.       var tmin = Math.floor(sekpos/60);
  21.       var tsek = sekpos%60;
  22.    
  23.       // Dieses jetzt in der Darstellung verwenden.
  24.     }
  25.   }
  26. }
Was die Darstellung in der Grafik betrifft, lass mal das FLA rüberwachsen. Dann kann ich dir besser helfen. Falls du es hier nicht posten willst, schicke es an diese Adresse. Muss jetzt mal weg und bin ca. ab 21.00 Uhr wieder am Rechner. Dann kann ich mich deiner annehmen.

Gruß vom Flash Doc
__________________
Erst Flash CS5 und dann Fläsch' Bier !!!
Flash Doc ist offline   Mit Zitat antworten
Alt 18-10-2006, 16:30   #9 (permalink)
Flash-Fan
 
Benutzerbild von Hoscakal
 
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 139
@ Flash Doc

Danke , Danke , Danke ...

preloader funktioniert jetzt wunderbar, kannst ja testen Dein esrter AS code war schon richtig ich "BLÖD" habe
PHP-Code:
sndPlayer.loadSound(soundNR,true); 
in onEnterFrame eingefügt.

Aber jetzt habe ich Probleme mit StatusBalken und so, Würde gerne dir die FLA schicken wenn du Zeit un Lust hast ! oder du erklärst mir hier wie ich das korekt raliesieren kann ..

z.Z sieht es so aus !

PHP-Code:
my_mp3.onLoad = function() { .......
// PROZENT UND STATUSBALKEN                                                     
        
var PositionP:Number Math.round(my_mp3.position/1000);
        var 
PositionD:Number Math.round(my_mp3.duration/1000);
        var 
Prozent:Number Math.round(PositionP/PositionD*100);
        
balken_mc.gotoAndStop(Prozent);
.... 

Geändert von Hoscakal (18-10-2006 um 16:34 Uhr)
Hoscakal ist offline   Mit Zitat antworten
Alt 18-10-2006, 19:40   #10 (permalink)
Home Flasher
 
Benutzerbild von Flash Doc
 
Registriert seit: Apr 2004
Ort: Engelskirchen
Beiträge: 345
Ich sitze am Rechner. Lass also mal die FLA rüber wachsen. Sonst muss ich mich nur in der Theorie ergehen und damit ist dir nur bedingt geholfen.

Nur soviel an dieser Stelle: Der Event onLoad wird erst ausgelöst, wenn z.B. der Sound komplett geladen wurde. In der hier dargestellten Weise nützt er dir also nichts. Wenn ich die FLA habe sehen wir weiter.

Wenn du die FLA hier nicht posten willst, schicke sie einfach an Flash Doc.

Gruß vom Flash Doc

PS: Hast du dich schon für die Flash Forum Konferenz angemeldet. Dort werden auch einige Workshops angeboten, die dir vielleicht helfen könnten.
__________________
Erst Flash CS5 und dann Fläsch' Bier !!!

Geändert von Flash Doc (18-10-2006 um 20:07 Uhr) Grund: Ergänzung PS
Flash Doc ist offline   Mit Zitat antworten
Alt 18-10-2006, 20:36   #11 (permalink)
Flash-Fan
 
Benutzerbild von Hoscakal
 
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 139
@ Flash Doc
fla ist unterwegs !
Hoscakal ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele