本文目录导读:

浏览器网页、操作系统、媒体播放器,还是 Python 库。
以下是几种常见场景的脚本实现方法:
浏览器环境(JavaScript)
最常用,控制 HTML 中 <audio> 或 <video> 元素的音量。
<audio id="myAudio" controls>
<source src="your-audio.mp3" type="audio/mpeg">
</audio>
<button onclick="setVolume(0.1)">10%</button>
<button onclick="setVolume(0.5)">50%</button>
<button onclick="setVolume(1.0)">100%</button>
<script>
function setVolume(vol) {
var audio = document.getElementById('myAudio');
audio.volume = vol; // 取值范围 0.0 (静音) 到 1.0 (最大)
}
</script>
- 关键属性:
element.volume - 范围:
0~0(注意0是元素自身最大音量,不等于系统最大)
Python 环境
方案 A:控制音频流数据(编程级音量控制)
适用于处理音频文件本身(如使用 pydub 或 librosa)。
from pydub import AudioSegment
# 加载音频
song = AudioSegment.from_mp3("your_audio.mp3")
# 增大或减小音量(单位:分贝dB)
louder = song + 6 # 增加6分贝
quieter = song - 10 # 减少10分贝
# 导出
louder.export("louder.mp3", format="mp3")
方案 B:控制系统主音量(需要第三方库)
适用于控制 Windows/macOS/Linux 的系统音频。
- Windows:使用
pycaw - macOS:使用
osascript(AppleScript) - Linux:使用
pactl(PulseAudio) 或amixer(ALSA)
示例:Windows 下用 Python 控制系统音量:
pip install pycaw comtypes
from pycaw.pycaw import AudioUtilities, IAudioEndpointVolume
from ctypes import cast, POINTER
from comtypes import CLSCTX_ALL
def set_system_volume(level):
"""
level: 0.0 (静音) 到 1.0 (最大)
"""
devices = AudioUtilities.GetSpeakers()
interface = devices.Activate(
IAudioEndpointVolume._iid_, CLSCTX_ALL, None)
volume = cast(interface, POINTER(IAudioEndpointVolume))
# 设置音量 (范围 0.0 ~ 1.0)
volume.SetMasterVolumeLevelScalar(level, None)
# 设置音量为 50%
set_system_volume(0.5)
操作系统脚本(Shell/Batch/VBS)
Windows(批处理或 PowerShell)
使用 nircmd 工具(需下载一个免费小工具):
nircmd setvolume 0 50000 '将主音量设为约50%(0~65535范围)'
PowerShell 调用 COM 接口:
$obj = new-object -com wscript.shell $obj.SendKeys([char]174) '减少音量' $obj.SendKeys([char]175) '增加音量'
macOS(AppleScript 或 Shell)
# 设置音量为 50% osascript -e "set volume output volume 50" # 获取当前音量 osascript -e "output volume of (get volume settings)"
Linux(Shell)
# 使用 amixer(通用) amixer set Master 50% # 使用 pactl(PulseAudio) pactl set-sink-volume @DEFAULT_SINK@ 50%
媒体播放器控制(MPC-HC / VLC)
VLC 命令行控制(正在播放时)
# 设置音量为 128(0-200范围) vlc --volume-step=10
通过命令行远程控制运行中的 VLC:
echo "volume 50" | nc -w 1 localhost 4212
总结建议
| 场景 | 推荐方法 |
|---|---|
| 网页中的音频/视频 | element.volume = 0.5 |
| Python 处理音频文件 | pydub (+/- dB) |
| Python 控制系统音量 | pycaw (Win) / osascript (Mac) / subprocess + pactl (Linux) |
| 系统脚本(无需安装) | AppleScript (Mac) / nircmd (Win) / amixer (Linux) |
| 自动化测试音量 | 媒体播放器自带 API 或热键模拟 |
如果需要针对特定平台或编程语言的详细代码,可以补充说明。