Flash Musik Player Hilfe


Recommended Posts

Geehrte Tech-ASBler,

für ein sehr wichtiges Projekt entwickle ich gerade einen Flash Musik Player der selbstgeschriebene Lieder wiedergibt.

Der Player besitzt verschiedene Spuren die die Instrumente wiedergeben(Vocals, Gitarre, etc). D.h. wenn ich jetzt die Vocals-Spur anwähle soll nur diese starten. Wenn ich dazu dann noch die Gitarren-Spur aktiviere höre ich also nur Vocals+Gitarre. Das mach ich solange bis ich z.B. das ganze Lied, also alle Spuren, höre. Gleichzeitig soll aber auch die Möglichkeit gegeben sein, dass man eine Spur wieder "abdreht".

Soviel mal zu den Rahmenbedingungen.

Meine theoretische Lösung wäre das ganze mit Hilfe der Lautstärkenkontrolle(Soundtransform) über die Soundchannel zu regeln. D.h ich starte eine Spur und alle anderen Spuren laufen einstweilen im Hintergrund ohne Ton mit. Wenn ich dann auf eine andere Spur klicke wird die Lautstärke einfach von 0 auf 1 gestellt. Funktioniert natürlich auch umgekehrt.

Meine bisherige praktische Programmierlösung beschränkt sich auf zwei Spuren, die mit Hilfe von Toggles abspielbar sind. Problem hier ist dass wenn eine Spur läuft, die zweite erst von Beginn startet und nicht schon mitläuft und einfach nur laut geschalten wird.

Ich weiß dass das an den Toggles liegt weil die durcheinander kommen. Weiß aber auch andererseits nicht wie ich das anders lösen kann.

Leider bin ich ein ziemlicher Programmier-Noob und mir fallen keine anderen Lösungen ein bzw. vl. gibts Funktionen dich nicht kenne.

Ich hoffe jemand kann mir helfen. Wäre wirklich sehr wichtig!

Hier noch mein bisheriger Code

package  {
import flash.net.URLRequest;
import flash.display.*;
import flash.media.Sound;
import flash.events.MouseEvent
import flash.media.*;
import flash.media.SoundMixer;
import fl.controls.*;

public class sound extends MovieClip{
 public function sound() {

  var fullTrack:Sound = new Sound();
  var fullTrackChannel:SoundChannel = new SoundChannel();
  var fullTrackTransform = new SoundTransform();
  fullTrackChannel.soundTransform = fullTrackTransform;
  fullTrack.load(new URLRequest("songsample.mp3"));

  var vocals:Sound = new Sound();
  var vocalsChannel:SoundChannel = new SoundChannel();
  var vocalsTransform = new SoundTransform();
  vocalsChannel.soundTransform = vocalsTransform;
  vocals.load(new URLRequest("DantesInferno2011.mp3"));

  var guitar:Sound = new Sound();
  var guitarChannel:SoundChannel = new SoundChannel();
  var guitarTransform = new SoundTransform();
  guitarChannel.soundTransform = guitarTransform;
  guitar.load(new URLRequest("main1_1.mp3"));

  var bass:Sound = new Sound();
  var bassChannel:SoundChannel = new SoundChannel();
  var bassTransform = new SoundTransform();
  bassChannel.soundTransform = guitarTransform;
  bass.load(new URLRequest("main1_2.mp3"));

  var drums:Sound = new Sound();
  var drumsChannel:SoundChannel = new SoundChannel();
  var drumsTransform = new SoundTransform();
  drumsChannel.soundTransform = guitarTransform;
  drums.load(new URLRequest("Tonspur.mp3"));

  full_mc.addEventListener(MouseEvent.CLICK,
	  function(evt:MouseEvent)
  {
full_mc.toggle = true;

if(full_mc.toggle == true)
{
 //alle Spuren spielen
}




  })

  voc_mc.addEventListener(MouseEvent.CLICK,
	 function(evt:MouseEvent)
  {
voc_mc.toggle = true;

if(voc_mc.toggle == true)
{
 vocalsChannel = vocals.play();
 guitarTransform.volume = 0;
 guitarChannel = guitar.play(0,0,guitarTransform);


}
if( (voc_mc.toggle == true) && (git_mc.toggle == true))
  {
   guitarTransform.volume = 1;
  }


  })

  git_mc.addEventListener(MouseEvent.CLICK,
	 function(evt:MouseEvent)
  {
git_mc.toggle = true;

if(git_mc.toggle == true)
{
 guitarChannel = guitar.play();
 vocalsTransform.volume = 0;
 vocalsChannel = vocals.play(0,0,vocalsTransform);


}

if( (voc_mc.toggle == true) && (git_mc.toggle == true))
  {
   vocalsTransform.volume = 1;
  }

  })

  stop_mc.addEventListener(MouseEvent.CLICK,
	  function(evt:MouseEvent)
  {
fullTrackChannel.stop();
vocalsChannel.stop();
guitarChannel.stop();
  })


 }
}

}

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...


  • Folge uns auf Facebook

  • Partnerlinks

  • Unsere Sponsoren und Partnerseiten

  • Wer ist Online

    • Keine registrierten Benutzer online.