+ -
当前位置:首页 → 问答吧 → 想播放背景音乐,而且能动态控制音量,怎么做最简单?

想播放背景音乐,而且能动态控制音量,怎么做最简单?

时间:2011-12-14

来源:互联网

VS2005,只想用API函数功能。
我知道的播放音乐的函数就是个PlaySound,但它又无法控制音量;另一些DirectSound相关的特复杂。我想知道有没有实现控制音量的简单方法。
谢谢!

作者: Renyq   发布时间: 2011-12-14

MCI的:

MCIWNDM_SETVOLUME
The MCIWNDM_SETVOLUME message sets the volume level of an MCI device. You can send this message explicitly or by using the MCIWndSetVolume macro. 

MCIWNDM_SETVOLUME 
wParam = 0; 
lParam = (LPARAM) (UINT) iVol; 

作者: agoago_2009   发布时间: 2011-12-15

引用 1 楼 agoago_2009 的回复:

MCI的:

MCIWNDM_SETVOLUME
The MCIWNDM_SETVOLUME message sets the volume level of an MCI device. You can send this message explicitly or by using the MCIWndSetVolume macro.

MCIWNDM_SETVOLUME
w……


++
可以试试这个。

作者: pathuang68   发布时间: 2011-12-15

MCIWndSetVolume这个宏控制的是哪个的音量?
谢谢!

作者: Renyq   发布时间: 2011-12-15

引用 3 楼 renyq 的回复:

MCIWndSetVolume这个宏控制的是哪个的音量?
谢谢!

MSDN说的

MCIWndSetVolume
The MCIWndSetVolume macro sets the volume level of an MCI device. You can use this macro or explicitly send the MCIWNDM_SETVOLUME message. 

LONG MCIWndSetVolume(
  hwnd, 
  iVol  
);
 

作者: agoago_2009   发布时间: 2011-12-16

开个线程吧,线程里面去处理音乐播放的事,
然后这个线程等待消息,可以设置一下消息:
  播放音乐:音乐路径
  暂停播放
  停止播放
  变更音量
  线程退出

这样,你在主线程里面,只要用PostThreadMessage给这个线程发消息就好了。
主界面不锁定,模块独立,下次你就可以直接用这个模块了。

作者: shyandsy   发布时间: 2011-12-16

热门下载

更多