我如何随机播放WAV。从Python中的文件夹中获取示例?

2024-04-25 10:27:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何从一个文件随机播放一个wav样本。我想随机挑选的wav样本播放时,a按钮点击。到目前为止,这是我所拥有的。在

import pygame.mixer 
import RPi.GPIO as GPIO

pygame.mixer.init()
GPIO.setmode(GPIO.BMC)
GPIO.setwarnings(False)

GPIO.setup(2, GPIO.IN, GPIO.PUD_DOWN)

drum = pygame.mixer.Sound("samples/drum_tom_mid_hard.wav")

def play(pin):
    print("playing")
    drum.play()

GPIO.add_event_detect(2, GPIO.FALLING, play, 1000)

print("ready")

while True:
    pass

上面的python代码在按下按钮时播放我选择的wav示例。我如何修改这个代码,使它播放一个随机的wav样本从一个文件,当按钮被按下?在


Tags: 文件代码importplaygpioinitas按钮
2条回答

您可以使用os.listdir获取文件夹中的所有文件。在

import os, random

def play():
    files=os.listdir('.')
    file=random.choice(files)
    pygame.mixer.Sound(file).play()
    print("playing")

如果需要wav,可以添加以下行:

^{pr2}$

我将使用glob来编译目录中的文件列表,然后使用random.choice来选择文件。在代码中添加了类似这样的内容(或者在play()的情况下,进行了修改):

import glob
import random

soundfiles = glob.glob("samples/*.wav")

def play(pin):
    print("playing")
    pygame.mixer.Sound(random.choice(soundfiles)).play()

相关问题 更多 >

    热门问题