Condividi tramite


Impostazione delle proprietà di acquisizione audio

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Ogni pin di input nel filtro di acquisizione audio espone l'interfaccia IAMAudioInputMixer . Usare questa interfaccia per abilitare o disabilitare un input specifico, chiamando il metodo IAMAudioInputMixer::p ut_Enable sul pin. Usare anche questa interfaccia per impostare le proprietà di un input, ad esempio bassi, treble e livelli di volume. Se si acquisiscono più input contemporaneamente, è possibile controllare i livelli generali di basso, treble e volume tramite l'interfaccia IAMAudioInputMixer sul filtro stesso.

Le frequenze di campionamento e i formati audio disponibili per l'acquisizione sono determinati dal driver. Usare l'interfaccia IAMStreamConfig nel pin di output del filtro di acquisizione audio per enumerare le frequenze di campionamento e i formati disponibili e impostare il formato desiderato. Il filtro può connettere downstream a qualsiasi filtro che accetta il tipo di supporto del pin di output.

Il filtro di acquisizione audio espone anche l'interfaccia IAMBufferNegotiation . Questa interfaccia è utile per controllare la quantità di latenza nell'anteprima audio. Per impostazione predefinita, il filtro Acquisizione audio usa una dimensione del buffer di metà secondo. Questa dimensione del buffer è ottimale per l'acquisizione, ma causa un ritardo di anteprima di metà secondo. Per ridurre la latenza, chiamare il metodo IAMBufferNegotiation::SuggestAllocatorProperties prima di connettere il pin di output del filtro di acquisizione audio. Questo metodo accetta un puntatore alla struttura ALLOCATOR_PROPERTIES . Usare il membro cbBuffer per specificare le dimensioni del buffer, in byte. Un buffer di 80 millisecondi è generalmente sicuro, ma i buffer di 30 o 40 millisecondi potrebbero essere sufficienti. Se i buffer sono troppo piccoli, la qualità del suono sarà danneggiata.