fungsi lineSetMediaControl (tapi.h)
Fungsi lineSetMediaControl mengaktifkan dan menonaktifkan tindakan kontrol pada aliran media yang terkait dengan baris, alamat, atau panggilan yang ditentukan. Tindakan kontrol media dapat dipicu oleh deteksi digit, jenis media, nada kustom, dan status panggilan tertentu.
Sintaks
LONG lineSetMediaControl(
HLINE hLine,
DWORD dwAddressID,
HCALL hCall,
DWORD dwSelect,
LPLINEMEDIACONTROLDIGIT const lpDigitList,
DWORD dwDigitNumEntries,
LPLINEMEDIACONTROLMEDIA const lpMediaList,
DWORD dwMediaNumEntries,
LPLINEMEDIACONTROLTONE const lpToneList,
DWORD dwToneNumEntries,
LPLINEMEDIACONTROLCALLSTATE const lpCallStateList,
DWORD dwCallStateNumEntries
);
Parameter
hLine
Menangani ke perangkat baris terbuka.
dwAddressID
Pengidentifikasi alamat pada perangkat baris terbuka yang diberikan. Pengidentifikasi alamat secara permanen dikaitkan dengan alamat; pengidentifikasi tetap konstan di seluruh peningkatan sistem operasi.
hCall
Menangani panggilan. Aplikasi harus menjadi pemilik panggilan. Status panggilan hCall dapat menjadi status apa pun.
dwSelect
Apakah kontrol media yang diminta dikaitkan dengan satu panggilan, adalah default untuk semua panggilan pada alamat, atau merupakan default untuk semua panggilan pada satu baris. Parameter ini satu dan hanya satu dari konstanta LINECALLSELECT_.
lpDigitList
Penunjuk ke array yang berisi digit yang akan memicu tindakan kontrol media, dari jenis LINEMEDIACONTROLDIGIT. Setiap kali digit dalam daftar digit terdeteksi, tindakan kontrol media yang ditentukan dilakukan pada aliran media panggilan.
Digit yang valid untuk mode pulsa adalah '0' hingga '9'. Digit yang valid untuk mode DTMF adalah '0' hingga '9', 'A', 'B', 'C', 'D', '*', '#'.
dwDigitNumEntries
Jumlah entri dalam lpDigitList.
lpMediaList
Penunjuk ke array dengan entri jenis LINEMEDIACONTROLMEDIA. Array memiliki entri dwMediaNumEntries . Setiap entri berisi jenis media yang akan dipantau, informasi spesifik jenis media (seperti durasi), dan bidang kontrol media. Jika jenis media dalam daftar terdeteksi, tindakan kontrol media yang sesuai dilakukan pada aliran media panggilan.
dwMediaNumEntries
Jumlah entri dalam lpMediaList.
lpToneList
Penunjuk ke array dengan entri jenis LINEMEDIACONTROLTONE. Array memiliki entri dwToneNumEntries . Setiap entri berisi deskripsi nada yang akan dipantau, durasi nada, dan bidang kontrol media. Jika nada dalam daftar terdeteksi, tindakan kontrol media yang sesuai dilakukan pada aliran media panggilan.
dwToneNumEntries
Jumlah entri dalam lpToneList.
lpCallStateList
Penunjuk ke array dengan entri jenis LINEMEDIACONTROLCALLSTATE. Array memiliki entri dwCallStateNumEntries . Setiap entri berisi status panggilan dan tindakan kontrol media. Setiap kali panggilan yang diberikan beralih ke salah satu status panggilan dalam daftar, tindakan kontrol media yang sesuai dipanggil.
dwCallStateNumEntries
Jumlah entri dalam lpCallStateList.
Mengembalikan nilai
Mengembalikan nol jika permintaan berhasil atau angka kesalahan negatif jika terjadi kesalahan. Nilai yang mungkin dikembalikan adalah:
LINEERR_INVALADDRESSID, LINEERR_NOMEM, LINEERR_INVALCALLHANDLE, LINEERR_NOTOWNER, LINEERR_INVALCALLSELECT, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLSTATELIST, LINEERR_OPERATIONFAILED, LINEERR_INVALDIGITLIST, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALLINEHANDLE, LINEERR_UNINITIALIZED, LINEERR_INVALMEDIALIST, LINEERR_INVALPOINTER, LINEERR_INVALTONELIST.
Keterangan
Fungsi lineSetMediaControl dianggap berhasil jika kontrol media telah dimulai dengan benar, bukan ketika kontrol media apa pun telah berlaku. Kontrol media yang sedang berlangsung diubah atau dibatalkan dengan memanggil fungsi ini lagi dengan parameter yang berbeda atau NULLs. Jika satu atau beberapa parameter lpDigitList, lpMediaList, lpToneList, dan lpCallStateListadalah NULL, maka digit yang sesuai, jenis media, nada, atau kontrol media yang dipicu status panggilan dinonaktifkan. Untuk memodifikasi hanya sebagian parameter kontrol media sambil membiarkan pengaturan yang tersisa berlaku, aplikasi harus memanggil lineSetMediaControl, menyediakan parameter sebelumnya untuk bagian-bagian yang harus tetap berlaku dan parameter baru untuk bagian-bagian yang akan dimodifikasi.
Jika hCall dipilih dan panggilan berakhir atau aplikasi membatalkan alokasi handelnya, kontrol media pada panggilan tersebut dibatalkan.
Semua aplikasi yang merupakan pemilik panggilan pada prinsipnya diizinkan untuk membuat permintaan kontrol media pada panggilan. Hanya satu permintaan kontrol media yang dapat keluar pada panggilan di semua aplikasi yang memiliki panggilan. Setiap kali lineSetMediaControl dipanggil, permintaan baru mengambil alih kontrol media apa pun yang kemudian berlaku pada panggilan, baik yang diatur oleh aplikasi panggilan atau aplikasi pemilik lainnya.
Bergantung pada penyedia layanan dan aktivitas lain yang bersaing untuk sumber daya tersebut, jumlah deteksi simultan yang dapat dilakukan dapat bervariasi dari waktu ke waktu. Jika sumber daya penyedia layanan selesai, kesalahan LINEERR_RESOURCEUNAVAIL dikembalikan.
Apakah kontrol media didukung oleh penyedia layanan adalah kemampuan perangkat atau tidak.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Header | tapi.h |
Pustaka | Tapi32.lib |
DLL | Tapi32.dll |