Abrufen des Geräteendpunkts für das Streamrouting

In Windows 7 implementieren high-level-Plattform-APIs, die Core Audio-APIs wie Media Foundation, DirectSound und Wave-APIs verwenden, das Streamroutingfeature, indem sie den Streamwechsel von einem vorhandenen Gerät zu einem neuen Standardaudioendpunkt verarbeiten. Medienanwendungen, die diese APIs verwenden (z. B. eine Anwendung, die ein IDirectSound- oder IBaseFilter-Objekt für ein IMMDevice-Objekt aktiviert), verwenden das Streamroutingverhalten ohne Änderungen an der Quelle.

Die übergeordneten APIs implementieren das Streamrouting für den Geräteendpunkt, der über IMMDeviceEnumerator::GetDefaultAudioEndpointabgerufen wird. Wenn eine Anwendung an das Standardgerät gestreamt wird, funktioniert das Streamroutingfeature wie definiert. Streams werden nicht auf das neue Gerät umgestellt, wenn es von einem anderen Mechanismus abgerufen wird, auch wenn es mit dem Standardgerät identisch ist.

Eine Medienanwendung, die Core Audio-APIs direkt verwendet (WASAPI-Client), kann eine benutzerdefinierte Streamroutingimplementation für jedes Rendering- oder Erfassungsgerät bereitstellen. Ein WASAPI-Client kann die von den übergeordneten APIs bereitgestellte Implemetation replizieren, indem er ihn auf Datenströme beschränkt, die auf Geräten geöffnet sind, die als Standardgerät festgelegt sind. Um einen Verweis auf den Endpunkt des Standardgeräts abzurufen, muss der Client IMMDeviceEnumerator::GetDefaultAudioEndpointaufrufen. In diesem Aufruf muss der Client angeben, ob ein Zeiger auf das Renderingstandardgerät oder das Standardgerät für die Erfassung erforderlich ist, indem der DataFlow-Parameter angegeben wird. Der Client muss auch die entsprechende Rolle für den Endpunkt im ERole-Attribut angeben (eConsole oder eCommunications). Verwenden Sie eMultimedia nicht.

Wenn die Anwendung an ein anderes Gerät gestreamt wird, kann die Anwendung das Gerät abrufen, indem sie eine Endpunkt-ID-Zeichenfolge angibt (durch Aufrufen von IMMDeviceEnumerator::GetDevice).

Nachdem das Gerät identifiziert wurde, kann der WASAPI-Client die Implementierung für das Streamrouting bereitstellen, indem er die für das Gerät gesendeten Geräte- und Audiositzungsbenachrichtigungen verarbeitet. Weitere Informationen zu diesen Benachrichtigungen finden Sie unter Relevante Benachrichtigungen für Streamrouting.

Informationen zur MMDevice-API

Informationen zu WASAPI

Streamrouting