Vraag & Antwoord

Programmeren

[Delphi] Meerdere wav files gelijktijdig afspelen

6 antwoorden
  • Hallo, Ik wil in Delphi 7 een applicatie maken waarmee ik meerdere wav files gelijktijdig kan afspelen door op buttons te klikken. Nu ben ik er achter gekomen dat dit met de PlaySound command niet gaat. Op internet heb ik gezocht naar een oplossing en kwam toen bij het volgende stukje freeware terecht: Website: [url]http://www.rawos.com/sw/mains/wplayer.htm[/url] Download hier (het is een .pas file): [url]http://www.rawos.com/sw/downloads/wplayer.zip[/url] Echter heb ik nu geen flauw idee hoe ik het nu moet aanroepen en hoe ik het in mijn project toe moet voegen? Ik ben geen kei in delphi en snap niet hoe ik dit moet fixen... Alvast bedankt!
  • Ok, ik geloof dat ik het nu heb kunnen importeren als Component. Ik heb Component -> install Component en heb WavePlayer.pas gekozen als "Unit File Name". Maar nu weet ik nog steeds niet hoe ik het moet aanroepen. Wat moet ik bijvoorbeeld bij button1 in de procedure zetten: [quote:e390636a40]procedure TForm1.Button1Click(Sender: TObject); begin end; end.[/quote:e390636a40] om via WavePlayer wav files te openen?
  • [quote:82990618bb="ominous"] Nu ben ik er achter gekomen dat dit met de PlaySound command niet gaat. [/quote:82990618bb] Anders maak je toch voor elk geluidje een thread? De thread hoeft niets meer te doen dan het geluidje af te spelen en daarna automatisch te stoppen.
  • [quote:afdee6e8f6="ominous"]Ok, ik geloof dat ik het nu heb kunnen importeren als Component. Ik heb Component -> install Component en heb WavePlayer.pas gekozen als "Unit File Name". Maar nu weet ik nog steeds niet hoe ik het moet aanroepen. Wat moet ik bijvoorbeeld bij button1 in de procedure zetten: [quote:afdee6e8f6]procedure TForm1.Button1Click(Sender: TObject); begin end; end.[/quote:afdee6e8f6] om via WavePlayer wav files te openen?[/quote:afdee6e8f6] Het is geen component dat je kunt installeren, maar een normale klasse. Een component is namelijk altijd vanaf TComponent afgeleid. Voor zover ik de code lees is het de bedoeling dat je een stream-object aanlevert en dat je dan voor ieder 'kanaal' een los TWaveplayer-object instantieert. Code zou dus ruwweg als volgt lopen : [code:1:afdee6e8f6] var iPlyr1, iPlyr2 : TWaveplayer; iFile1, iFile2 : TFilestream; begin iFile1 := TFilestream.create(<bestand1>); iPlyr1 := TWaveplayer.create; iPlyr1.Source := iFile1; // dan evt. instellen of je wilt herhalen en hoeveel keer dat moet // idem voor iFile2 en iPlyr2 // en dan spelen maar : iPlyr1.Play; iPlyr2.play; [/code:1:afdee6e8f6] // h4xX0r Threads hebben geen zin, want de Windows-functie die de waveplayer-klasse gebruikt regelt dat al. Bovendien zit je dan met het probleem van het synchroniseren van threads. Een thread starten kost namelijk ook tijd ...
  • Hey JaFo hartstikke bedankt, wat dat was inderdaad hoe het moest!! precies op die manier. het is me nu gelukt, hartstikke bedankt voor al jullie replies! greetz
  • I was born intelligen - education ruined me Ja dat blijkt maar; intelligent is nog altijd met een t op het eind :lol:

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.