AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mixer in Windows Vista

Ein Thema von juelin · begonnen am 1. Sep 2007 · letzter Beitrag vom 4. Jun 2008
Antwort Antwort
juelin

Registriert seit: 9. Mai 2006
Ort: Mannheim
124 Beiträge
 
Delphi XE5 Professional
 
#1

Mixer in Windows Vista

  Alt 1. Sep 2007, 14:49
Hallo,
ich arbeite mit Delphi 7 und will auf meinem Notebook den Mixer steuern.
OS: Windows Vista
Soundkarte: Realtek

Trotz installation von MMSystem kann ich nur einen Kanal steuern (keine Gesamtlaustärke, Mikro, Wave oder Line).

Hat da jemand eine Idee?

Danke und Gruss
Jürgen
Jürgen Linder
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Mixer in Windows Vista

  Alt 1. Sep 2007, 15:40
Wurden nicht unter Vista einiges am Audio-Subsystem geändert
In einer der letzten c't-Ausgaben war ein Bericht darüber. Evtl. mußt du hier neue API-Schnittstellen verwenden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
1. Sep 2007, 18:42
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Multimedia" verschoben.
Delphi-Frage
Billi Berserker
(Gast)

n/a Beiträge
 
#4

Re: Mixer in Windows Vista

  Alt 2. Sep 2007, 12:18
Der Mixer und das Audio System hat sich in Vista Grundlegend geändert.
Meine alte implementierung zur Steuerung der Lautstärke funktioniert unter Vista nicht mehr.

Es gibt soweit ich rausgefunden haben komplett neue Interface Objekte zum Steuern des Mixers.
ISimpleAudioVolume Interface
IChannelAudioVolume Interface
IAudioStreamVolume Interface

Leider habe ich noch nirgens eine funktioniernde Delphi Implementation gefunden und selbst habe ich bisher zu wenig mit Interfaces gearbeitet um es selbst zu implementieren.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Mixer in Windows Vista

  Alt 2. Sep 2007, 12:51
Zitat von Billi Berserker:
... und selbst habe ich bisher zu wenig mit Interfaces gearbeitet um es selbst zu implementieren.
Wenn das nur ist werden sich genügend Helfer finden die dir Helfen werden (Für generelle Fragen zu Interfaces würde ich auch was beisteuern). Und da mit juelin auch einen Helfer hast (definier ich jetzt einfach mal) wäre es doch was gutes wenn ihr eine entsprechende Klasse allgemein entwickelt die auch vor Vista funktioniert.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Billi Berserker
(Gast)

n/a Beiträge
 
#6

Re: Mixer in Windows Vista

  Alt 2. Sep 2007, 17:07
Dann gleich mal eine Frage zur C++ -> Delphi konvertierung
MSDN sagt bei sämtlichen Get methoden wie z.b. http://msdn2.microsoft.com/en-us/library/ms678751.aspx
Code:
HRESULT GetMute(BOOL *pbMute);
Zitat:
[...]Parameters

pbMute

[out] Pointer to a BOOL variable into which the method writes the muting state. [...]
wie sieht die entsprechende Delphi Implementierung aus? Soll hier wirklich ein Pointer auf Boolean als Parameter ran oder reicht es einen einfachen boolean Parameter mit out zu deklarieren?
ich würds jetzt einfach so machen:
function GetMute(out pbMute : boolean) : hresult; oder muß PBoolean als typ hin?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Mixer in Windows Vista

  Alt 2. Sep 2007, 17:26
out ist richtig, Boolean hingegen falsch. Verwende Bool aber nicht Boolean. Und denk an die Aufrufconvention. In der Regel Stdcall oder cdecl
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Billi Berserker
(Gast)

n/a Beiträge
 
#8

Re: Mixer in Windows Vista

  Alt 2. Sep 2007, 20:53
Nächste Frage ist dann wie ich die Interfaces überhaupt benutze.
Ich habe jetzt
Delphi-Quellcode:
const
  IID_IMMDeviceEnumerator : TGUID = '{A95664D2-9614-4F35-A746-DE8DB63617E6}';
type
  IMMDeviceEnumerator = interface(IUnknown)
    ['{A95664D2-9614-4F35-A746-DE8DB63617E6}']
    function EnumAudioEndpoints(dataFlow : EDataFlow; dwStateMask : DWord; out ppDevices : IMMDeviceCollection) : hresult; stdcall;
    function GetDefaultAudioEndpoint(dataFlow : EDataFlow; role : ERole; out ppDevice : IMMDevice) : hresult; stdcall;
    function GetDevice(pwStrID : LPCWSTR; out ppDevice : IMMDevice) : hresult; stdcall;
    function RegisterEndpointNotificationCallback(pNotify : IMMNotificationClient) : hresult; stdcall;
    function UnregisterEndpointNotificationCallback(pNotify : IMMNotificationClient) : hresult; stdcall;
  end;
Beim versuch das ganze zu benutzen:
Delphi-Quellcode:
var
var
  hr : hresult;
  pIMMDeviceEnumerator : IMMDeviceEnumerator;
begin
  CoInitialize(nil);
  hr := CoCreateInstance(IID_IMMDeviceEnumerator, nil, CLSCTX_INPROC_SERVER, IMMDeviceEnumerator, pIMMDeviceEnumerator);
  CoUnInitialize();
end;
bekomm ich einen "REGDB_E_CLASSNOTREG" Fehler.
Zitat:
REGDB_E_CLASSNOTREG
A specified class is not registered in the registration database. Also can indicate that the type of server you requested in the CLSCTX enumeration is not registered or the values for the server types in the registry are corrupt.
Die GUID müßte jedoch mit {A95664D2-9614-4F35-A746-DE8DB63617E6} auf jedenfall stimmen da ich das direkt aus dem win32 sdk gezogen habe
Code:
EXTERN_C const IID IID_IMMDeviceEnumerator;
   
    MIDL_INTERFACE("A95664D2-9614-4F35-A746-DE8DB63617E6")
  Mit Zitat antworten Zitat
Jeehaa

Registriert seit: 31. Mär 2006
3 Beiträge
 
#9

Re: Mixer in Windows Vista

  Alt 14. Nov 2007, 12:23
Hi ich hab mit dem Mixer unter Vista jetzt genau das Selbe Problem.
Hat jemand dazu schon ne Lösung gefunden.
Die Lösungsansätze waren ja schon ganz gut, aber leider führen Sie mich auch nicht zum erfolg ;(
Für Hilfe wär ich super dankbar!
  Mit Zitat antworten Zitat
56K-Surfer

Registriert seit: 28. Mär 2005
7 Beiträge
 
Delphi 7 Personal
 
#10

Re: Mixer in Windows Vista

  Alt 4. Jun 2008, 20:59
Hallo zusammen
Gibt es bereits irgendwelche Lösungen zur Mixer Steuerung unter Vista?
Ich hab eine X10 Fernbedienung und will mit dieser unter anderem die Windows
Lautstärke einstellen. Damals unter XP lief das alles toll,
aber unter Vista klappt es halt nicht mehr.
Grüße
Sebastian
Sebastian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz