0

我对 Python 很陌生。我一直在尝试制作一个脚本,它可以在运行时播放来自特定文件夹的随机 WAV 文件。如果我尝试单个 wav 文件,它可以正常工作,但不适用于随机/文件。我已经尝试过 pygame 和其他一些音频模块,但每个模块都遇到了问题。例如 pygame 拒绝打开 WAV 或 MP3 文件。当我打印它时,我可以看到它确实选择了随机文件,但 Windows 会发出“带来”声音并且不播放音频。可能真的很基本,但我无法解决这个问题。谢谢您的帮助。

import winsound
import random
import os
winsound.PlaySound(random.choice(os.listdir("D:/randomsoundfolder/dem/")), winsound.SND_ASYNC)

4

2 回答 2

0
import winsound
import random
import os
import glob

#Create a placeholder for the soundfile that will be selected
soundfile = ''
 
# Path to the sound file directory, in this example we will use a random wav file from the Windows Media folder.
path = 'C:\Windows\Media'
 
# Extract the list of filenames from the path that are wav files only.
soundfiles = glob.glob(path + '\*.wav', recursive=False)
 
# Loop to print the filenames and create a list of the soundfiles
for filename in soundfiles:
    print(filename)

# Pick a random sound file from a list
soundfile = random.choice(soundfiles)

print("Play a random sound") 
winsound.PlaySound(soundfile, winsound.SND_ASYNC)
于 2021-08-05T18:55:22.510 回答
0

抱歉之前有重复的帖子。您可以查看 pya,例如:https ://stackoverflow.com/a/60902249/4930109

由于播放 wav 需要 PyAudio(portaudio 的包装器),对于 windows 用户,您可以从以下位置安装轮子:https ://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio

但是,我发现最简单的方法是使用 Anaconda 安装 PyAudio,因为它将安装非 python 库:

conda install pyaudio 

我建议你使用 Anaconda 来处理你的 Python 环境,因为它会给你一种更简洁的方式来组织每个项目,因为它们可能需要不同的 Python 版本、不同的依赖项等等。Anaconda 有很多好处。

然后

pip install pya

然后您可以按照第一个链接播放 wav 文件。如果您想播放 mp3,那么您还需要 ffmpeg,请在 pya ( https://github.com/interactive-sonification/pya ) 中获取有关为您的操作系统安装 ffmpeg 的说明。

希望这可以帮助。

于 2020-03-28T15:42:00.960 回答