You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用playsound模块播放本地音频,是否有内置音量调节参数?

playsound模块无内置音量调节参数,附替代方案
  • 首先明确:playsound模块没有内置的音量调节参数,你设想的playsound("filename", volume=x)这种调用方式不存在,官方实现里没提供这个选项,不用白费力气找了。

不用修改模块的解决办法

1. 先预处理音频再播放

用pydub库调整音频音量后,再用playsound播放,不会改动原文件:

from pydub import AudioSegment
from playsound import playsound
import tempfile
import os

# 加载本地音频文件(支持mp3、wav等格式)
audio = AudioSegment.from_file("your_audio.mp3")
# 调整音量:数值为dB,负数降音量,正数提音量,比如-10就是降10分贝
adjusted_audio = audio - 10

# 生成临时文件存调整后的音频
temp_file = tempfile.NamedTemporaryFile(suffix=".mp3", delete=False)
temp_path = temp_file.name
temp_file.close()

# 导出调整后的音频到临时文件
adjusted_audio.export(temp_path, format="mp3")

# 播放
playsound(temp_path)

# 播放完删掉临时文件
os.remove(temp_path)

注意:需要先装pydub和ffmpeg(pydub依赖ffmpeg处理音频编码)

2. 调系统全局音量(仅Windows)

用ctypes调用Windows系统API临时改全局音量,播放完可以再调回去:

from playsound import playsound
import ctypes

# 先记录当前音量(可选,方便后续恢复)
user32 = ctypes.WinDLL("user32")
winmm = ctypes.WinDLL("winmm")
current_volume = ctypes.c_uint32()
winmm.waveOutGetVolume(0, ctypes.byref(current_volume))

# 降低音量到50%(范围0-65535,32768就是50%)
winmm.waveOutSetVolume(0, 32768)

# 播放音频
playsound("your_audio.mp3")

# 恢复原音量
winmm.waveOutSetVolume(0, current_volume.value)

3. 换用支持音量控制的播放库

如果不想预处理,直接换个带音量参数的库,比如pygame:

import pygame

# 初始化混音器
pygame.mixer.init()
# 加载音频
sound = pygame.mixer.Sound("your_audio.wav")
# 设置音量,范围0.0(静音)到1.0(最大)
sound.set_volume(0.5)
# 播放
sound.play()
# 等待播放结束
while pygame.mixer.get_busy():
    pygame.time.Clock().tick(10)

内容的提问来源于stack exchange,提问作者Arjun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:12:34