acmStreamOpen-Funktion (msacm.h)

Die Funktion acmStreamOpen öffnet einen ACM-Konvertierungsdatenstrom. Konvertierungsdatenströme werden verwendet, um Daten aus einem angegebenen Audioformat in ein anderes zu konvertieren.

Syntax

MMRESULT ACMAPI acmStreamOpen(
  LPHACMSTREAM   phas,
  HACMDRIVER     had,
  LPWAVEFORMATEX pwfxSrc,
  LPWAVEFORMATEX pwfxDst,
  LPWAVEFILTER   pwfltr,
  DWORD_PTR      dwCallback,
  DWORD_PTR      dwInstance,
  DWORD          fdwOpen
);

Parameter

phas

Zeiger auf ein Handle, das das neue Datenstromhandle empfängt, das zum Ausführen von Konvertierungen verwendet werden kann. Dieses Handle wird verwendet, um den Stream in Aufrufen anderer ACM-Streamkonvertierungsfunktionen zu identifizieren. Wenn das ACM_STREAMOPENF_QUERY-Flag angegeben ist, sollte dieser Parameter NULL sein.

had

Handle mit einem ACM-Treiber. Wenn dieses Handle angegeben ist, wird ein bestimmter Treiber identifiziert, der für einen Konvertierungsstream verwendet werden soll. Wenn dieser Parameter NULL ist, werden alle geeigneten installierten ACM-Treiber abgefragt, bis eine Übereinstimmung gefunden wird.

pwfxSrc

Zeiger auf eine WAVEFORMATEX-Struktur , die das gewünschte Quellformat für die Konvertierung identifiziert.

pwfxDst

Zeiger auf eine WAVEFORMATEX-Struktur , die das gewünschte Zielformat für die Konvertierung identifiziert.

pwfltr

Zeiger auf eine WAVEFILTER-Struktur , die den gewünschten Filtervorgang identifiziert, der für den Konvertierungsdatenstrom ausgeführt werden soll. Wenn kein Filtervorgang gewünscht ist, kann dieser Parameter NULL sein. Wenn ein Filter angegeben wird, müssen das Quell- (pwfxSrc) und das Zielformat (pwfxDst) identisch sein.

dwCallback

Zeiger auf eine Rückruffunktion, ein Handle eines Fensters oder ein Handle eines Ereignisses. Eine Rückruffunktion wird nur aufgerufen, wenn der Konvertierungsdatenstrom mit dem flag ACM_STREAMOPENF_ASYNC geöffnet wird. Eine Rückruffunktion wird benachrichtigt, wenn der Konvertierungsstream geöffnet oder geschlossen wird und nachdem jeder Puffer konvertiert wurde. Wenn der Konvertierungsstream ohne das flag ACM_STREAMOPENF_ASYNC geöffnet wird, sollte dieser Parameter auf 0 festgelegt werden.

dwInstance

Benutzer-instance Daten, die an die Rückruffunktion übergeben werden, die durch den dwCallback-Parameter angegeben wird. Dieser Parameter wird nicht für Fenster- und Ereignisrückrufe verwendet. Wenn der Konvertierungsstream ohne das flag ACM_STREAMOPENF_ASYNC geöffnet wird, sollte dieser Parameter auf 0 festgelegt werden.

fdwOpen

Flags zum Öffnen des Konvertierungsstreams. Die folgenden Werte werden definiert.

[ACMSTREAMHEADER] (./ns-msacm-acmstreamheader.md)-Struktur für das ACMSTREAMHEADER_STATUSF_DONE-Flag.
Wert Bedeutung
ACM_STREAMOPENF_ASYNC
ACM_STREAMOPENF_NONREALTIME ACM berücksichtigt beim Konvertieren der Daten keine Zeiteinschränkungen. Standardmäßig versucht der Treiber, die Daten in Echtzeit zu konvertieren. Bei einigen Formaten kann die Angabe dieses Flags die Audioqualität oder andere Merkmale verbessern.
ACM_STREAMOPENF_QUERY ACM wird abgefragt, um zu ermitteln, ob die angegebene Konvertierung unterstützt wird. Ein Konvertierungsdatenstrom wird nicht geöffnet, und im Phas-Parameter wird kein Handle zurückgegeben.
CALLBACK_EVENT Der dwCallback-Parameter ist ein Handle eines Ereignisses.
CALLBACK_FUNCTION Der dwCallback-Parameter ist eine Rückrufprozeduradresse. Der Funktionsprototyp muss dem Prototyp acmStreamConvertCallback entsprechen.
CALLBACK_WINDOW Der dwCallback-Parameter ist ein Fensterhandle.

Rückgabewert

Gibt null zurück, wenn der Vorgang erfolgreich war oder andernfalls ein Fehler. Mögliche Fehlerwerte sind:

Rückgabecode Beschreibung
ACMERR_NOTPOSSIBLE
Der angeforderte Vorgang kann nicht ausgeführt werden.
MMSYSERR_INVALFLAG
Mindestens ein Flag ist ungültig.
MMSYSERR_INVALHANDLE
Das angegebene Handle ist ungültig.
MMSYSERR_INVALPARAM
Mindestens ein Parameter ist ungültig.
MMSYSERR_NOMEM
Das System kann keine Ressourcen zuordnen.

Hinweise

Wenn ein ACM-Treiber keine Echtzeitkonvertierungen ausführen kann und das ACM_STREAMOPENF_NONREALTIME-Flag nicht für den fdwOpen-Parameter angegeben ist, tritt beim öffnenden Vorgang ein Fehler auf, der einen ACMERR_NOTPOSSIBLE Fehlercode zurückgibt. Eine Anwendung kann das flag ACM_STREAMOPENF_QUERY verwenden, um zu bestimmen, ob Echtzeitkonvertierungen für die Eingabe unterstützt werden.

Wenn eine Anwendung ein Fenster zum Empfangen von Rückrufinformationen verwendet, werden die MM_ACM_OPEN, MM_ACM_CLOSE und MM_ACM_DONE Nachrichten an die Fensterprozedurfunktion gesendet, um den Fortschritt des Konvertierungsdatenstroms anzugeben. In diesem Fall wird die ACMSTREAMHEADER-Struktur für MM_ACM_DONE, aber nicht für MM_ACM_OPEN und MM_ACM_CLOSE verwendet.

Wenn eine Anwendung eine Funktion zum Empfangen von Rückrufinformationen verwendet, werden die MM_ACM_OPEN, MM_ACM_CLOSE und MM_ACM_DONE Nachrichten an die Funktion gesendet, um den Fortschritt der Waveform-Audioausgabe anzugeben. Die Rückruffunktion muss sich in einer DLL (Dynamic Link Library) befinden.

Wenn eine Anwendung ein Ereignis für Rückrufbenachrichtigungen verwendet, wird das Ereignis signalisiert, um den Fortschritt des Konvertierungsdatenstroms anzugeben. Das Ereignis wird signalisiert, wenn ein Stream geöffnet wird, nachdem jeder Puffer konvertiert wurde und wenn der Stream geschlossen wird.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile msacm.h
Bibliothek Msacm32.lib
DLL Msacm32.dll

Weitere Informationen

Audiokomprimierungsfunktionen

Audiokomprimierungs-Manager