作者zaqimon (dream)
看板Programming
标题[问题] Windows 7音量淡出淡入如何实作?
时间Wed Aug 15 11:06:21 2012
请问在Windows 7有什麽方式可以将其他所有程式的音量淡出
只允许我目前这只程式发出声音
等我的程式声音播放结束後再恢复(淡入)其他程式的音量
大概就类似手机上那种来电时其他背景声音淡出淡入的功能
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.245.65.182
1F:→ WPC001:如果别的程式是用WSAPI, 则输出已经被独占 114.43.70.71 08/17 07:14
2F:→ WPC001:如果是走一般的DS/WaveOut,就有解 114.43.70.71 08/17 07:14
3F:→ WPC001:你应该可以自己手动试VolControl的效果 114.43.70.71 08/17 07:14
4F:→ WPC001:Google去查一个EndpointVolume API 114.43.70.71 08/17 07:16
感谢
我再研究看看
我之前有写一支TTS(Text-to-Speech)小程式透过Speech API发音
http://zaqimon.blogspot.tw/2012/03/tts-autoit-zqspeak.html
我想要的只是希望TTS在发音的过程中可以让其他声音暂时先静音
※ 编辑: zaqimon 来自: 1.200.6.88 (08/17 11:24)
Default Ducking Experience
http://goo.gl/Ie8TR
这就是我要的效果
不过只支援Windows 7
而且要整合进AutoIt似乎还要想想看有什麽好方法
基本上就是开启communication device并收送资料即可
OS就会自动把其他所有声音给淡出
收送资料暂停或停止背景声音就会自动淡入
控制台可设定是否静音以及静音50%或80%或完全静音
※ 编辑: zaqimon 来自: 180.217.4.68 (08/20 23:14)
http://zaqimon.blogspot.tw/2012/03/tts-autoit-zqspeak.html
同样连结
已更新完成支援淡出淡入
不过缺点是只有Windows 7可以用
※ 编辑: zaqimon 来自: 60.245.65.182 (08/24 14:38)
还是有缺点
例如Skype麦克风就无法使用似乎被我的程式给占走了
就算控制台勾选不允许应用程式独占装置依然无效
音乐播放器的歌曲换下一首时声音又自动跑出来
除非是用Windows Media Player这种会针对ducking暂停播放处理的程式
不然就要看看如何能够不间段的播放静音来模拟
但之前用别人写的范例程式可以loop播放wav档案
在我的电脑上loop之後会出现高频杂音
我猜是因为不断的waveOutOpen/Close会有问题吧
但是走WASAPI及DirectShow的控制方式又太复杂了
AutoIt光call dll就很累了更何况是call COM元件
※ 编辑: zaqimon 来自: 1.200.20.38 (08/25 23:24)