Bagikan melalui


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
ACMERR_NOTPOSSIBLE
Operasi yang diminta tidak dapat dilakukan.
MMSYSERR_INVALFLAG
Setidaknya satu bendera tidak valid.
MMSYSERR_INVALHANDLE
Handel yang ditentukan tidak valid.
MMSYSERR_INVALPARAM
Setidaknya satu parameter tidak valid.
MMSYSERR_NOMEM
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

Lihat juga

Fungsi Pemadatan Audio

Pengelola Kompresi Audio