fungsi acmStreamOpen (msacm.h)
Fungsi acmStreamOpen membuka aliran konversi ACM. Aliran konversi digunakan untuk mengonversi data dari satu format audio tertentu ke format audio lainnya.
Sintaks
MMRESULT ACMAPI acmStreamOpen(
LPHACMSTREAM phas,
HACMDRIVER had,
LPWAVEFORMATEX pwfxSrc,
LPWAVEFORMATEX pwfxDst,
LPWAVEFILTER pwfltr,
DWORD_PTR dwCallback,
DWORD_PTR dwInstance,
DWORD fdwOpen
);
Parameter
phas
Penunjuk ke handel yang akan menerima handel aliran baru yang dapat digunakan untuk melakukan konversi. Handel ini digunakan untuk mengidentifikasi aliran dalam panggilan ke fungsi konversi aliran ACM lainnya. Jika bendera ACM_STREAMOPENF_QUERY ditentukan, parameter ini harus NULL.
had
Tangani ke driver ACM. Jika handel ini ditentukan, handel ini mengidentifikasi driver tertentu yang akan digunakan untuk aliran konversi. Jika parameter ini NULL, semua driver ACM yang diinstal yang sesuai dikueri hingga kecocokan ditemukan.
pwfxSrc
Penunjuk ke struktur WAVEFORMATEX yang mengidentifikasi format sumber yang diinginkan untuk konversi.
pwfxDst
Penunjuk ke struktur WAVEFORMATEX yang mengidentifikasi format tujuan yang diinginkan untuk konversi.
pwfltr
Penunjuk ke struktur WAVEFILTER yang mengidentifikasi operasi pemfilteran yang diinginkan untuk dilakukan pada aliran konversi. Jika tidak ada operasi pemfilteran yang diinginkan, parameter ini bisa NULL. Jika filter ditentukan, format sumber (pwfxSrc) dan tujuan (pwfxDst) harus sama.
dwCallback
Penunjuk ke fungsi panggilan balik, handel jendela, atau handel peristiwa. Fungsi panggilan balik hanya akan dipanggil jika aliran konversi dibuka dengan bendera ACM_STREAMOPENF_ASYNC. Fungsi panggilan balik diberi tahu saat aliran konversi dibuka atau ditutup dan setelah setiap buffer dikonversi. Jika aliran konversi dibuka tanpa bendera ACM_STREAMOPENF_ASYNC, parameter ini harus diatur ke nol.
dwInstance
Data instans pengguna diteruskan ke fungsi panggilan balik yang ditentukan oleh parameter dwCallback . Parameter ini tidak digunakan dengan panggilan balik jendela dan peristiwa. Jika aliran konversi dibuka tanpa bendera ACM_STREAMOPENF_ASYNC, parameter ini harus diatur ke nol.
fdwOpen
Bendera untuk membuka aliran konversi. Nilai berikut didefinisikan.
[ACMSTREAMHEADER] (./ns-msacm-acmstreamheader.md) struktur untuk bendera ACMSTREAMHEADER_STATUSF_DONE.Nilai | Makna |
---|---|
ACM_STREAMOPENF_ASYNC | |
ACM_STREAMOPENF_NONREALTIME | ACM tidak akan mempertimbangkan batasan waktu saat mengonversi data. Secara default, driver akan mencoba mengonversi data secara real time. Untuk beberapa format, menentukan bendera ini dapat meningkatkan kualitas audio atau karakteristik lainnya. |
ACM_STREAMOPENF_QUERY | ACM akan dikueri untuk menentukan apakah mendukung konversi yang diberikan. Aliran konversi tidak akan dibuka, dan tidak ada handel yang akan dikembalikan dalam parameter phas . |
CALLBACK_EVENT | Parameter dwCallback adalah handel dari suatu peristiwa. |
CALLBACK_FUNCTION | Parameter dwCallback adalah alamat prosedur panggilan balik. Prototipe fungsi harus sesuai dengan prototipe acmStreamConvertCallback . |
CALLBACK_WINDOW | Parameter dwCallback adalah handel jendela. |
Mengembalikan nilai
Mengembalikan nol jika berhasil atau kesalahan sebaliknya. Kemungkinan nilai kesalahan termasuk yang berikut ini.
Menampilkan kode | Deskripsi |
---|---|
|
Operasi yang diminta tidak dapat dilakukan. |
|
Setidaknya satu bendera tidak valid. |
|
Handel yang ditentukan tidak valid. |
|
Setidaknya satu parameter tidak valid. |
|
Sistem tidak dapat mengalokasikan sumber daya. |
Keterangan
Jika driver ACM tidak dapat melakukan konversi real-time dan bendera ACM_STREAMOPENF_NONREALTIME tidak ditentukan untuk parameter fdwOpen , operasi terbuka akan gagal mengembalikan kode kesalahan ACMERR_NOTPOSSIBLE. Aplikasi dapat menggunakan bendera ACM_STREAMOPENF_QUERY untuk menentukan apakah konversi real-time didukung untuk input.
Jika aplikasi menggunakan jendela untuk menerima informasi panggilan balik, pesan MM_ACM_OPEN, MM_ACM_CLOSE, dan MM_ACM_DONE dikirim ke fungsi prosedur jendela untuk menunjukkan kemajuan aliran konversi. Dalam hal ini, struktur ACMSTREAMHEADER untuk MM_ACM_DONE, tetapi tidak digunakan untuk MM_ACM_OPEN dan MM_ACM_CLOSE.
Jika aplikasi menggunakan fungsi untuk menerima informasi panggilan balik, pesan MM_ACM_OPEN, MM_ACM_CLOSE, dan MM_ACM_DONE dikirim ke fungsi untuk menunjukkan kemajuan output waveform-audio. Fungsi panggilan balik harus berada di pustaka tautan dinamis (DLL).
Jika aplikasi menggunakan peristiwa untuk pemberitahuan panggilan balik, peristiwa disinyalkan untuk menunjukkan kemajuan aliran konversi. Peristiwa akan disinyalkan saat aliran dibuka, setelah setiap buffer dikonversi, dan saat streaming ditutup.
Persyaratan
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | msacm.h |
Pustaka | Msacm32.lib |
DLL | Msacm32.dll |