PDA

Vollständige Version anzeigen : CD-Player Lautstärke setzen


Mike1605
04.05.2001, 08:59
Hello mitanand!

Ich sitz nun schon seit Stunden zum Teil recht verzweifelt an einem Problem - vielleicht hat jemand von Euch eine Lösung parat:

DAS PROBLEM:
Ich muß mittels VB-Code die Lautstärke des CD-Players regulieren können.

LÖSUNGSVERSUCHE:
Ich denke, dass es über WINMM.DLL bzw. API funktionieren müsste - konnte jedoch keine Lösung finden

Ich benötige diese Lösung, um für meinen Blinden Schwager einen CD-Player zu Programmieren - mit dem Windows-Standardplayer funzt seine Braille-Zeile (Blindenausgabe) nicht. Das Programm an sich ist fertig - was noch fehlt ist eben die Lautstärkenregulierung.

Ich danke Euch bereits im voraus für Euer Interesse.
Grüassle

Alexander Jan Peters
04.05.2001, 10:10
<font color="#000000" size="2" face="Tahoma">Hallo,

hier ist erst einmal ein Beispiel, wie Du mit der API (exakter: Winmm.dll) die Wave-Lautstärke steuern kannst.
Im Verlauf des Wochenendes kann ich auch mal ein Beispiel zur Steuerung des gesamten Mixers reinstellen,
aber ich hab gleich einen Termin und daher paßt es jetzt etwas schlecht (sehr umfangreich).</font>

<font color="#000000" size="2" face="Courier New">Private Declare Function waveOutSetVolume Lib "Winmm" (ByVal wDeviceID As Integer, ByVal dwVolume As Long) As Integer
Private Declare Function waveOutGetVolume Lib "Winmm" (ByVal wDeviceID As Integer, dwVolume As Long) As Integer
Private Function fGetWaveVolume() As Long
Dim lngPuffer As Long
Dim lngA As Long

Dim steHex As String
lngPuffer = waveOutGetVolume(0, intA)
strHex = "&H" & Right(Hex(lngA), 4)
fGetWaveVolume = CLng(strHex)
End Function

Private Function fSetWaveVolume(strVolume As String) As Long
Dim lngPuffer As Long
Dim lngA As Long
Dim strHex As String

strHex = Right((Hex(strVolume + 65536)), 4)
strVolume = CLng("&H" & strHex & strHex)
lngPuffer = waveOutSetVolume(0, strVolume)
fSetWaveVolume = lngPuffer
End Function</font>

<font color="#000000" size="2" face="Tahoma">
Mich würde allerdings sehr interessieren, wie man eine Braille-Zeile per VBA ansteuert, wäre es machbar, daß Du das Prinzip mal erklärst?

Gruß

A.J. Peters

Empfehlenswerte Links:
<a href="http://www.donkarl.com">Access FAQ von Karl Donaubauer</a>
<a href="http://www.access-paradies.de/Links.htm">Access-Paradies Links</a></font>

Mike1605
04.05.2001, 12:19
Hello Alex!

Ich danke Dir für Deine Bemühungen.
Ich habe allerdings die Lösung schon gefunden. Unser Moderator Stefan Kulpa hat mir freundlicherweise folgende Seite zukommen lassen.
http://www.planet-source-code.com/xq/ASP/txtCodeId.2482/lngWId.1/qx/vb/scripts/ShowCode.htm

Trotzdem nochmals danke und ein schönes Wochenende
Grüassle
Mike

Mike1605
04.05.2001, 12:50
Oooops! Da hab ich doch glatt eine Zeile überlesen, nämlich die mit Deiner Frage nach der Braille-Zeile.

Diese funktioniert nach folgenden Regeln:
- Es wird immer nur eine Zeile des Bildschirms angezeigt
- Es wird immer die Zeile angezeigt, in der sich der Cursor (sprich aktives Objekt) befindet
- Alles (Labels, Textfelder, Listbox, Commandbuttons, etc.), was Text ist und Visible=True hat, also auch von einem Sehenden gesehen wird, wird angezeigt.
- Grafiken bzw. Buttons im Grafikformat werden nicht erkannt.
- Ein Arbeiten mit der Maus ist für Blinde nicht bzw. nur sehr schwer möglich => Alle Felder müssen mit der Tastatur bedient werden können (Focus setzen, Value ändern, etc.)
- Für übersichtliche Programme für Sehbehinderte empfiehlt es sich, mit Menüs und dort angeführten Kurztasten zu arbeiten
- Es empfielt sich, dessen bewußt zu sein, daß in einer Braillezeile je nach Gerät nur 40 bzw. 80 Zeichen dargestellt werden können. Befinden sich mehrere Zeichen in einer Zeile, muss der Braille-Bediener mit dem Cursor bzw. der Braillezeile wandern (mitunter umständlich)

Du siehst also, dass die Braille-Zeile nicht direkt angesteuert werden muss, sondern eher die Programmierweise beachtet werden muss.

Sollte Dich das Programmieren für Sehbehinderte tiefergehend beschäftigen und Du noch weitere Fragen haben, mail mir bitte (michael.fleisch@mcnon.com).

Grüassle
Mike

------------------
Mike