![]() |
PlaySound mit Polyphonie
Hi,
mich quält gerade folgendes Problem: Ich habe z.B.: einen Timer, der permanent einen Sound abspielen soll ... jetzt bitte nicht nach dem Sinn fragen - es geht eher allgemein ums Verständnis. :-)
Delphi-Quellcode:
Wenn der Timeraufruf kürzer als die Länge des Sounds ist, wird der Sound abgeschnitten. Ist mir ja irgendwie auch klar ...
procedure TForm1.Timer1Timer(Sender: TObject);
begin PlaySound(nil,0,0); PlaySound('shot', hInstance, SND_RESOURCE or SND_ASYNC); end; Ich würde es aber gerne haben, dass ich mehrere (gleiche und/oder verschiedene) Sounds abspielen kann. Wahrscheinlich muss ich jedesmal ein neues Handle dafür definieren, aber wie? sonnige Grüsse und besten Dank, Hannes |
Re: PlaySound mit Polyphonie
Ich kenn mich damit nicht aus, aber kannst du im Timer nicht eine andere Prozedur starten, die dann in einen eigenen Thread läuft und somit vom Timer unabhängig ist? Und dann für jeden Sound ein Thread... Aber ich denke wahrscheinlich wieder zu kompliziert.
MfG freak |
Re: PlaySound mit Polyphonie
Hmm, das klingt wirklich kompliziert. Ich schätze mal, dass es bestimmt ne einfachere Möglichkeit gibt. Wenn ich z.B. in Javascript ein neues Fenster mit open() erzeuge, dann bekommt es automatisch ein 'freies' Handle zugewiesen. So etwas sollte es doch auch in Delphi geben - oder liege ich da jetzt absolut falsch?
|
Re: PlaySound mit Polyphonie
Moin!
PlaySound() ist ein kleiner Hilfsschnipsel der grossen WinAPI und hat nix mit dem MultimediaSystem zu tun. PlaySound kann IMHO nur einen Sound gleichzeitig abspielen. Wenn du mehrere gleichzeitig abspielen willst, dann geh weg von dieser Billigschnittstelle und beschäftige dich direkt mit der richtigen API: MultiMedia API von Windows... Du rufst ja 2x PlaySound() in deinem Timer auf. Der erste Aufruf stoppt auch alle gerade aktiven Sounds... MfG Muetze1 |
Re: PlaySound mit Polyphonie
Gibt es denn in der richtigen MultiMedia API eine einfache Möglichkeit á la PlaySound()?
|
Re: PlaySound mit Polyphonie
Natürlich nicht... ;)
Aber es ist eigentlich nicht schwer. Ich habe das mit der Bass.dll gemacht! Kannste Dir ![]() Da ist dann auch nen Beispiel mit drin wo alles funktioniert und Du schon mehrere Sounds abspielen kannst! |
Re: PlaySound mit Polyphonie
Klar mit der bass.dll könnte ich es machen. Aber ich möchte das Prog so klein wie nur möglich bekommen ... und ohne extra dll und so ...
Über ein anschauliches Beispiel mit der API würde ich mich freuen! |
Re: PlaySound mit Polyphonie
Hmmm, gibt es da wirklich keine "kleine" Lösung?
|
Re: PlaySound mit Polyphonie
Ich glaube das kannst du über
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz