2008-09-16 7 views
3

Ich habe ein Problem (und habe es schon seit einiger Zeit) - der neue Sound-Mixer-Stack in Vista bietet neue coole Dinge, aber erfindet auch das Rad neu. Viele Anwendungen, die früher den Volume Mixer auf einem Windows-System verwendeten, um verschiedene stimmhafte Ausgänge in einen Eingang zu mischen (zB Wave-Out + Line-In -> Stereo Mix), haben seitdem nicht mehr funktioniert. Das Hauptbeispiel für dieses Verhalten ist das Shoutcast DSP-Plugin (könnte für das Testen von Lösungen nützlich sein).Wie emulieren/ersetzen/reaktivieren Sie klassische Sound-Mixer-Steuerelemente (oder Befehle) in Windows Vista?

Wie kann ich XP-Mixersteuerelemente wieder aktivieren oder dieses Verhalten irgendwie emulieren, damit das Programm (SC DSP) die Lautstärke der Mikrofon-/Line-In-Wiedergabe zusammen mit der Wave-Out-Wiedergabelautstärke richtig verwalten kann?

Ich denke, ein Programm in den Vista Mixer für Wave-Out und Line-Out (oder Mikrofonlautsprecherlautstärke - alle Wiedergabe, als separate einstellbare "Programme" angezeigt, so dass der Vista Mixer könnte süchtig beziehen Sie sich darauf) und "haken" Sie es in das System unter irgendeiner Emulation ein, die sich als die alte Volumenmischer-Steuerschnittstelle für das Programm darstellt, aber ich habe ehrlich gesagt keine Idee, wie man das macht.

Um zu verdeutlichen: das ist nicht mein PC (es ist ein HP Pavilion Laptop). Das Problem scheint hauptsächlich darin zu bestehen, dass der Vista-Mixer separate Programme steuert, nicht getrennte Ein-/Ausgänge. Die Hardware ist in der Lage, das zu tun, was unter Windows XP benötigt wird. Mir ist klar, dass dies ein Treiberproblem ist, aber der Treiber ist einfach darauf vorbereitet, was Vista dem Programmierer über Schnittstellen bietet. Das Mixer-Gerät - wie es im Betriebssystem zu sehen ist, könnte aber in Software aussehen - basiert auf den Mixer-APIs für die Windows Audio-Steuerung.

Suchen Sie mithilfe von Google Vista und Line-In-Wiedergabe Lautstärkeregelung für weitere Informationen zu dem Problem (und die schiere Menge der betroffenen Benutzer). Natürlich würde ein Neuschreiben des Shoutcast Source DSP-Plug-Ins für WinAMP den Zweck erfüllen, aber das wird wahrscheinlich nicht passieren ...

Antwort

4

Steuerung der Lautstärke eines Soundkarten indivudual Ein-/Ausgangspegel in Windows Vista Mixer möglich wird mit dem Audio-EndPoint API

Dies sollten Sie die Hauptlautstärke und die Lautstärke und verbunden Audio-Eingänge erlauben anpassen . Eine Falte darüber, dass wenn Sie die Endpunkte aufzählen, wenn kein Mikrofon in Ihre Soundkarte eingesteckt ist, dann wird nichts aufgezählt. Das bedeutet, dass Sie Ihre Anwendung so ändern müssen, dass sie auf Ereignisse reagiert, die durch ein Mikrofon ausgelöst wurden, und den Benutzer entsprechend benachrichtigen.

Eine andere Möglichkeit ist es, unter Microsoft Core Audio zu tauchen und direkt auf den WaveRT Treiber zuzugreifen. Dies ist viel mehr Arbeit als die Verwendung der WASAPI/Endpunkt-APIs, aber Sie erhalten die meiste Kontrolle über den Zugriff auf die Ein-/Ausgänge der Soundkarte.

3

Der Audiotreiber steuert, welche Mischersteuerungen verfügbar sind, und dies hängt davon ab weitgehend auf die Fähigkeiten der Hardware.

Wenn der Vista-Treiber bestimmte Steuerelemente nicht hat, ist es wahrscheinlich ein Mangel dieses Treibers und nicht von Vista.

(Bitte sagen Sie uns, welche Soundkarte/Gerät Sie verwenden.)

Es wäre möglich, ein Programm zu schreiben Ihre eigenen Mixer Kontrollen erstellen (dies würde eine reine Software-Treiber für eine virtuelle Soundkarte), aber dieses Programm ist nicht in der Lage, das Audio-Routing innerhalb des Geräts zu beeinflussen, wenn der tatsächliche Treiber keine Mixer-Steuerung dafür hat.

2

Wenn Sie Ihre App als Windows XP-kompatibel markieren, werden alle alten Steuerelemente und Verhaltensweisen wieder angezeigt.

1

Wenn Sie Ihre App als Windows XP-kompatibel markieren, werden alle alten Steuerelemente und Verhaltensweisen wieder angezeigt.

Das ist wahr, aber wie von Vista SP1 Patch KB957388, enthalten in SP2 und mit einigen Soundkartentreiber, können die alten Mischer API (winmm.dll) Funktionen hängen, wenn die App im XP-Kompatibilitätsmodus ist. Insbesondere werden MixerGetNumDevs und seltener MixerOpen auf einigen Computern nicht zurückgegeben.

Ich habe Berichte von 5 Vista-Benutzern von etwa 200 Vista-Benutzern insgesamt, wo meine App hängt beim Start, und ich habe es auf diese Funktionen hängen hängen.

Ich möchte dies an Microsoft melden, kann aber nirgendwo anders finden.

Alles, was ich jetzt tun kann, ist die Freigabe meiner Software ohne den Kompatibilitätsmodus aktiviert, aber das verliert Funktionalität in meiner App, und die Software kann die Line-In oder Mikrofon Mischer nicht steuern.

Ich habe keine Zeit, mit Low-Level-API-Funktionen direkt zu arbeiten. Ich verlasse mich auf High-Level-Komponenten, und ich kann keine für die neuen Audio-APIs für mein Entwicklungssystem (Delphi) finden.

Ich wäre daran interessiert jemanden zu bezahlen, um eine DLL für mich zu schreiben !!! E mail Ross att stationplaylist dott com

Verwandte Themen