wince下音量设置的疑惑

yaokaei 2011-08-01 11:05:28
本人刚刚设计WINCE编程,看了不少评论和博客,关于wince下音量设置的问题。
有一点我觉得有疑惑,麻烦大牛们给个答案。

音量修改步骤一般分为三步:

(1)修改数注册表音量值为nVolume
(2)通过waveOutSetVolume(0, nVolume)修改系统主音量
(3)调用微软未公开的API AudioUpdateFromRegistry来修改音量(也是根据nVolume来反映)。


既然通过(2)设置了系统主音量,我认为也就是连接到系统的所有音频源(音响,DV。。)的音量都被调节好了,
为什么还要通过(3)来再次修改音量呢??
请问大牛们,(2)和(3)有什么具体的区别吗?




...全文
89 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
northcan 2011-08-01
  • 打赏
  • 举报
回复
我以前的程序也只用waveOutSetVolume这一个就可以了。
如果是通过修改注册表方式来修改音量,就要调用AudioUpdateFromRegistry。
yaokaei 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 llxxhm 的回复:]
楼主弄错了,设置音量有两种方法:
1.就是你所说的第二步就行了.
2.就是你所说的第一步,再加第三步.
[/Quote]
如果是这样的话,看来我的理解有误了。
确实有些程序里面把这两步都做了一遍。可能是为了保险起见吧?!
QQ515311445 2011-08-01
  • 打赏
  • 举报
回复
楼主弄错了,设置音量有两种方法:
1.就是你所说的第二步就行了.
2.就是你所说的第一步,再加第三步.
northcan 2011-08-01
  • 打赏
  • 举报
回复
看样子是
(2)waveOutSetVolume用来修改代表主音量的注册表键值。
(3)AudioUpdateFromRegistry用来获取代表音量大小的注册表键来调节音量。
也就是2只是更新了注册表,3才是通过注册表的键值来修改音量的。
根据函数名猜的。楼主可以查一下msdn

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧