Condividi tramite


Metodo IMMDeviceEnumerator::GetDefaultAudioEndpoint (mmdeviceapi.h)

Il metodo GetDefaultAudioEndpoint recupera l'endpoint audio predefinito per la direzione e il ruolo del flusso di dati specificati.

Sintassi

HRESULT GetDefaultAudioEndpoint(
  [in]  EDataFlow dataFlow,
  [in]  ERole     role,
  [out] IMMDevice **ppEndpoint
);

Parametri

[in] dataFlow

Direzione del flusso di dati per il dispositivo endpoint. Il chiamante deve impostare questo parametro su uno dei due valori di enumerazione EDataFlow seguenti:

eRender

eCapture

La direzione del flusso di dati per un dispositivo di rendering è eRender. La direzione del flusso di dati per un dispositivo di acquisizione è eCapture.

[in] role

Ruolo del dispositivo endpoint. Il chiamante deve impostare questo parametro su uno dei valori di enumerazione ERole seguenti:

eConsole

eMultimedia

eCommunications

Per altre informazioni, vedere la sezione Osservazioni.

[out] ppEndpoint

Puntatore a una variabile puntatore in cui il metodo scrive l'indirizzo dell'interfaccia IMMDevice dell'oggetto endpoint per il dispositivo dell'endpoint audio predefinito. Tramite questo metodo, il chiamante ottiene un riferimento conteggiato all'interfaccia. Il chiamante è responsabile del rilascio dell'interfaccia, quando non è più necessario, chiamando il metodo Release dell'interfaccia. Se la chiamata GetDefaultAudioEndpoint ha esito negativo, *ppDevice è NULL.

Valore restituito

Se il metodo ha esito positivo, viene restituito S_OK. Se ha esito negativo, i codici restituiti possibili includono, ma non sono limitati a, i valori visualizzati nella tabella seguente.

Codice restituito Descrizione
E_POINTER
Il parametro ppDevice è NULL.
E_INVALIDARG
Il flusso di dati dei parametri o il ruolo non è compreso nell'intervallo.
E_NOTFOUND
Nessun dispositivo disponibile.
E_OUTOFMEMORY
Memoria insufficiente.

Commenti

Nota

In Windows Vista l'API MMDevice supporta i ruoli del dispositivo , ma i programmi dell'interfaccia utente forniti dal sistema non sono. L'interfaccia utente in Windows Vista consente all'utente di selezionare un dispositivo audio predefinito per il rendering e un dispositivo audio predefinito per l'acquisizione. Quando l'utente modifica il rendering predefinito o il dispositivo di acquisizione, il sistema assegna tutti e tre i ruoli del dispositivo (eConsole, eMultimedia e eCommunications) a tale dispositivo. Pertanto, GetDefaultAudioEndpoint seleziona sempre il rendering predefinito o il dispositivo di acquisizione, indipendentemente dal ruolo indicato dal parametro del ruolo . In una versione futura di Windows, l'interfaccia utente potrebbe consentire all'utente di assegnare singoli ruoli a dispositivi diversi. In tal caso, la selezione di un dispositivo di rendering o acquisizione da GetDefaultAudioEndpoint può dipendere dal parametro del ruolo . Pertanto, il comportamento di un'applicazione audio sviluppata per l'esecuzione in Windows Vista potrebbe cambiare quando viene eseguita in una versione futura di Windows. Per altre informazioni, vedere Ruoli del dispositivo in Windows Vista.

Questo metodo recupera il dispositivo endpoint predefinito per la direzione del flusso di dati specificata (rendering o acquisizione) e il ruolo. Ad esempio, un client può ottenere il dispositivo di riproduzione della console predefinito eseguendo la chiamata seguente:


  hr = pDevEnum->GetDefaultAudioEndpoint(
                   eRender, eConsole, &pDeviceOut);

Nel frammento di codice precedente, la variabile hr è di tipo HRESULT, pDevEnum è un puntatore a un'interfaccia IMMDeviceEnumerator e pDeviceOut è un puntatore a un'interfaccia IMMDevice .

Un sistema Windows potrebbe contenere alcune combinazioni di dispositivi endpoint audio, ad esempio altoparlanti desktop, cuffie ad alta fedeltà, microfoni desktop, visori con altoparlanti e microfoni e altoparlanti multicanale ad alta fedeltà. L'utente può assegnare ruoli appropriati ai dispositivi. Ad esempio, un'applicazione che gestisce i flussi di comunicazione vocale può chiamare GetDefaultAudioEndpoint per identificare i dispositivi di rendering e acquisizione designati per tale ruolo.

Se è disponibile solo un singolo dispositivo di rendering o acquisizione, il sistema assegna sempre tutti e tre i ruoli di rendering o acquisizione a tale dispositivo. Se il metodo non riesce a trovare un dispositivo di rendering o acquisizione per il ruolo specificato, ciò significa che non è disponibile alcun dispositivo di rendering o acquisizione. Se non è disponibile alcun dispositivo, il metodo imposta *ppEndpoint = NULL e restituisce ERROR_NOT_FOUND.

Per esempi di codice che chiamano il metodo GetDefaultAudioEndpoint , vedere gli argomenti seguenti:

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione mmdeviceapi.h

Vedi anche

Interfaccia IMMDevice

Interfaccia IMMDeviceEnumerator