einfache Musik Steuerung

Dieses Thema im Forum "Flash and Actionscript" wurde erstellt von Steglich, 19.09.2004.

  1. Steglich

    Steglich Thread Starter MacUser Mitglied

    Beiträge:
    206
    Zustimmungen:
    0
    Mitglied seit:
    30.05.2003
    Kann mir bitte jemand weiterhelfen? Ich habe schon länger nichts mehr mit Flash MX gemacht. Ich möchte eine einfache Musik Steuerung bauen.

    In meinem Flash Dokument habe ich zwei Buttons: music on und music off;
    Desweiteren habe ich ein etwas längeres Musikstück in die Bibliothek importiert.

    Die Musik soll beim Aufruf des Films automatisch starten, mit dem Button music off soll ich sie ausschalten können und mit dem Button music on soll sie wieder gestartet werden, entweder von vorne oder da, wo sie durch music off stehen geblieben ist, je nachdem, was einfacher ist.

    Ach ja noch etwas: Das Musikstück soll schon während des Herunterladens gestartet werden (streaming).

    Wie muss ich das (wahrscheinlich relativ einfach) implementieren?
     
  2. Hi,

    hier die erste Lösung, allerdings ohne Streaming. Mir ist nicht bekannt, das man einen Streamed Sound pausieren kann. Entweder non-streamed oder mit attachSound()… das geht.

    PHP:
    //Actionscript 1.0 

    //Soundobjekt definieren 
    Sound = new Sound(); 
    Sound.loadSound(url); 



    //Pause 
    SoundPos Sound.position
    Sound.stop(); 

    //Pause gelöst 
    Sound.start(SoundPos/1000); 
    Die 2. Lösung gibt es gleich. Ich bau dir das auch direkt in deine Fla… ich denke Streaming macht Sinn, da deine Audiofile sehr groß ist….

    Liebe Grüße

    Yves
     
  3. Die 2. Lösung… leider fängt da der Sound immer von vorn an…

    PHP:
    _global.sound=new Sound(this);
    _global.sound.setVolume(100);
    _global.sound.loadSound('song1.mp3'true);
    _global.status=true;

    MovieClip.prototype.audioplay=function()
        {
        if(!
    _global.status)
            {
            
    _global.status=true;
            
    _global.sound.loadSound('song1.mp3'true);      
            }
        }
      
    MovieClip.prototype.audiopause=function()
        {
        
    _global.status=false;
        
    _global.sound.stop();
        }
    Falls jemand weiß, wie man auf eine streamed Soundobject mit start(), stop() zugreifen kann… lasst es mich wissen. Geht aber soviel ich weiß nicht.

    Das einzige was man machen könnte, wäre die Lautstärke =0 zu setzen, dann läuft der Song zumindest nicht vom Anfang wieder los.

    PHP:
    _global.sound=new Sound(this);
    _global.sound.setVolume(100);
    _global.sound.loadSound('song1.mp3'true);

    MovieClip.prototype.audioplay=function()
        {
        
    _global.sound.setVolume(100);
        }
      
    MovieClip.prototype.audiopause=function()
        {
        
    _global.sound.setVolume(0);
        }
    Liebe Grüße

    Yves
     
  4. Hi,

    ich hab mal gerade in deine Fla geschaut. Dort hast du den Sound ja in der Bibliothek. Das heisst, er kann nicht gestreamt werden, da er erst zur Verfügung steht, wenn die ganze SWF auch geladen ist. Das kannst du dann also via Preloader erledigen…

    Und dann musst du attachSound() verwenden. Das sieht dann so aus…

    PHP:
    //Actionscript 1.0
    _global.sound=new Sound(this);
    _global.sound.setVolume(100);
    _global.sound.attachSound('remix');
    _global.sound.start(0,999);

    MovieClip.prototype.audioplay=function()
        {
        
    _global.sound.start(_global.soundPos/1000999);
        }
        
    MovieClip.prototype.audiopause=function()
        {
        
    _global.soundPos=_global.sound.position
        
    _global.sound.stop();
        }
    Wichtig ist, das der Song in der Library eine Linkage ID bekommt. Ohne „Export to first Frame“. Sonst gibt das Probleme mit dem Preloader, da der Sound noch vor diesen instanziert wird.
    Also Workaround einfach in den Frame nach dem Preloader den Sound in einen Keyframe auf Event Stop legen. So komisch es auch klingt, man kann Instanzen von der Bühne attachen.

    Ich schick dir jetzt mal die Version mit dem attachSound() zu. Falls du das lieber gestreamt haben willst… du findest ja hier die Anleitung und in deiner Email ebenfalls nochmal die Sources, die du dir auch hier herunterladen kannst.
    Zum Streaming einfach das Script übernehmen und deinen Remix als Mp3 zu der swf ins Verzeichnis legen. Entweder benennst du dann den remix nach 'song1.mp3' um, oder passt im Script beim loadSound() Befehl das Target Parameter an.

    Liebe Grüße

    Yves
     
Die Seite wird geladen...

Diese Seite empfehlen