共用方式為


waveOutSetVolume 函式 (mmeapi.h)

waveOutSetVolume函式會設定指定之電壓音訊輸出裝置的音量層級。

語法

MMRESULT waveOutSetVolume(
  HWAVEOUT hwo,
  DWORD    dwVolume
);

參數

hwo

開啟的電壓輸出裝置的控制碼。 此參數也可以是裝置識別碼。

dwVolume

新的磁片區設定。 低序字組包含左通道音量設定,而高階單字則包含右通道設定。 0xFFFF 的值代表完整磁片區,而0x0000的值則為無聲。

如果裝置不支援左右音量控制, dwVolume 的低序字會指定磁片區層級,並忽略高序字組。

傳回值

如果成功或發生錯誤,則傳回MMSYSERR_NOERROR。 可能的錯誤值包括下列專案。

傳回碼 描述
MMSYSERR_INVALHANDLE
指定的裝置控制碼無效。
MMSYSERR_NODRIVER
沒有設備磁碟機。
MMSYSERR_NOMEM
無法配置或鎖定記憶體。
MMSYSERR_NOTSUPPORTED
不支援函式。

備註

如果使用裝置識別碼, waveOutSetVolume 呼叫的結果會套用至裝置的所有實例。 如果使用裝置控制碼,結果只會套用至裝置控制碼所參考的裝置實例。

並非所有裝置都支援磁片區變更。 若要判斷裝置是否支援音量控制,請使用 WAVECAPS_VOLUME 旗標來測試waveOUTCAPS結構 (填滿waveOutGetDevCaps函式的dwSupport成員) 。 若要判斷裝置是否支援左右通道上的音量控制,請使用 WAVECAPS_LRVOLUME 旗標。

大部分裝置都不支援完整的 16 位磁片區層級控制,而且不會使用要求之磁片區設定的最小有效位。 例如,如果裝置支援 4 位的磁片區控制,則值0x4000、0x4FFF和0x43BE全都會截斷為0x4000。 waveOutGetVolume函式會傳回具有waveOutSetVolume的完整 16 位設定集。

磁片區設定會以對數方式解譯。 這表示當將磁片區層級從0x5000增加到0x6000時,感知的磁片區增加與0x4000到0x5000相同。

需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 mmeapi.h (包含 Windows.h)
程式庫 Winmm.lib
Dll Winmm.dll

另請參閱

電壓音訊

電壓函數