Der neue PC-Standard: High Definition Audio

Ermitteln verfügbarer Audio-Geräte

PC-Systeme haben heutzutage typischerweise nur ein Wiedergabegerät. Die nächste Generation wird mit HD-Audio ausgestattet sein und daher mehrere Wiedergabegeräte auf ein und demselben System bieten.

Initialisieren eines DirectSound-Objekts

Dieser Abschnitt zeigt die Initialisierung, wenn Ihre Applikation die PlaySound()-Funktion nutzt, um Audio-Sound über den Default-Port abzuspielen. Da PlaySound() nicht das DirectX-API benutzt, muss der C/C++-Code das DirectX-COM-Objekt erzeugen, ehe die Applikation vom DirectSound-API profitieren kann. Das folgende Codebeispiel zeigt, wie die benötigten COM-Objekte erzeugt werden.

// Instantiate an interface to query the sound devices.
if( FAILED( hr = CoCreateInstance( CLSID_DirectMusicLoader, NULL, CLSCTX_INPROC, IID_IDirectMusicLoader8, (void**)&m_pLoader ) ) )
return hr;
// Create a new music object
if( FAILED( hr = CoCreateInstance( CLSID_DirectMusicPerformance, NULL, CLSCTX_INPROC, IID_IDirectMusicPerformance8,(void**)&m_pPerformance ) ) )
return hr;

Das IID_IDirectMusicLoader8-Interface wird genutzt zum Auffinden, Auflisten, Speichern und Laden der Objekte. Im Codebeispiel wird dieses Objekt zum Laden einer Audio-Datei benutzt.

Das IID_IDirectMusicPerformance8-Interface wird hauptsächlich als allgemeiner Wiedergabe-Manager eingesetzt. Das Codebeispiel zum Download nutzt dieses Interface, um das Audio-Objekt auf dem Wiedergabegerät zu initialisieren, den Audio-Stream zu starten und zu stoppen, den Status des Audio-Streams zu prüfen und die Geräte freizugeben.