![]() |
Sound-Ausgabe nach Kanal (links/rechts)
Hi, ich will bei einem Klick mit der Mittleren Maustaste eine Ton auf dem linken Kanal ausgeben und bei einem Klick mit der rechten Maustaste einen Ton auf dem rechten Kanal.
Das mit dem Maustasten klappt auch, aber ich weiß nicht, wie ich die einzelnen Kanäle ansprechen kann. Kann mir jemand helfen? Ausgabe des Tons läuft derzeit so:
Code:
Hab schon versucht so was zu finden, leider vergeblich. Danke schon mal für eure Hilfe. :) :thumb:
Windows.Beep(900, 1000);
|
AW: Sound-Ausgabe nach Kanal (links/rechts)
Via Windows-Beep eher überhaupt nicht, da dies eine bestehende WAVE Datei abspielt, die selbst auch schon stereo sein kann. Das einfachste wäre es, wenn du selber zwei Wave-Dateien machst, eine mit Ton nur links, eine rechts, und dann mittels sndPlaySound() die jeweils entsprechende abjodeln.
|
AW: Sound-Ausgabe nach Kanal (links/rechts)
Zitat:
Das ist falsch! Beep.sys erzeugt den Ton. Das funktionierte bis WIN XP fast wie zu DOS-Zeiten:
Code:
Danach wurde es etwas komplizierter, aber dafür ist der Ton schöner.
MakeBeep1 proc dwPitch:DWORD
; Direct hardware access cli mov al, 10110110y out 43h, al mov eax, dwPitch out 42h, al mov al, ah out 42h, al ; Turn speaker ON in al, 61h or al, 11y out 61h, al sti DO_DELAY cli ; Turn speaker OFF in al, 61h and al, 11111100y out 61h, al sti ret MakeBeep1 endp |
AW: Sound-Ausgabe nach Kanal (links/rechts)
Na gut. Sagen wir es so: In Systemen die noch einen Pipser haben, wird das darüber ausgegeben - so lange man nicht Vista oder höher einsetzt. In den anderen Fällen leitet Beep() auf das angesprochene Wave-File um. Effektiv bleibt die Aussage aber bestehen: Der Beeper wird auch kaum ein Stereosignal trällern ;)
(War mir auch bekannt, aber ich hielt pre-Vista für nicht mehr so arg relevant hier, zumal der TE ja den Ton schon über seine Soundkarte zu bekommen scheint.) |
AW: Sound-Ausgabe nach Kanal (links/rechts)
Okay, es sollte schon auf allen Systemen laufen. Das mit dem Beep für rechts/links hab ich jetzt (die Audiodatei).
Wenn ich die allerdings per sndPlaySound() oder PlaySound() einbinden will, sagt mir Delphi Undeclared identifier 'PlaySound'. Kann mir jemand helfen? Und reicht es, wenn ich in die Klammer den Dateinamen inklusive Endung schreiben, wenn die Datei im selben Verzeichnis liegt? So, es hat sich geklärt. Ich musste noch mmSystem in der USES-Sektion einfügen. Vielen Dank noch mal für eure Hilfe. Auf euch ist ja echt immer verlass. :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:07 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