Die ASB-Bundesliga-Tippliga 2022/23 startet! Alle Infos findet ihr hier. Jetzt mittippen! :super:

Jump to content
GrimCvlt

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();
  })


 }
}

}

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

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

Loading...


  • Folge uns auf Facebook

  • Partnerlinks

  • Unsere Sponsoren und Partnerseiten

  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...