【问题标题】:Playing random wav files with winsound issue播放带有 winsound 问题的随机 wav 文件
【发布时间】:2021-08-06 02:55:22
【问题描述】:

我对 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)

【问题讨论】:

    标签: python python-3.x audio pycharm winsound


    【解决方案1】:

    抱歉之前有重复的帖子。您可以查看 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 的说明。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:
      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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多