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 |
---|---|
|
Der angeforderte Vorgang kann nicht ausgeführt werden. |
|
Mindestens ein Flag ist ungültig. |
|
Das angegebene Handle ist ungültig. |
|
Mindestens ein Parameter ist ungültig. |
|
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 |