我有大约25个类似的声音文件,每个声音文件的频率不同。我已根据变化的速度变量编写了一些代码来更改正在播放的声音文件。从理论上讲,声音的音高应该随着速度而增加(文件数越高音高越高。)这就是我写的:
CurrentSound = 'CarEngine0.wav'
OldSound = CurrentSound
while True:
CurrentSound = 'CarEngine' + str(abs(int(speed*2))) + '.wav'
CarSound = pygame.mixer.Sound(CurrentSound)
if not OldSound == CurrentSound:
OldSound = CurrentSound
CarSound.stop()
CarSound.play(-1)
如果我打电话给CurrentSound
和OldSound
变量进行打印,它们会发生变化,但声音似乎没有变化。我做错了什么,有没有更好的方法呢?
答案 0 :(得分:1)
如果我理解正确,你有25个声音文件,你想按照速度变量的递增顺序播放它们。 25个声音文件名称根据其音调进行排序。
该解决方案假设您将音频文件放在一个文件夹中,并按顺序按其音高顺序列出。
代码将根据速度计数器[您可以根据需要修改]加载在文件夹中按顺序列出的文件
代码写在windows 8和python 2.7
上import pygame.mixer, pygame.time
import os
mixer = pygame.mixer
mixer.init() #Initialize Mixer
#Your path to audio files
filepath = "C:\\yourAudioFilePath\\"
#Iterate through counter and audio files
for x, i in zip(range(0,25),os.listdir(filepath)):
if i.endswith(".wav"):
mySoundFile = mixer.Sound(filepath + i)
print "Speed Variable = " , x , " and file = ", i
channel = mySoundFile.play(0)
while channel.get_busy(): #Check if Channel is busy
pygame.time.wait(100) # wait in ms until song is played
print "........"
我按顺序重命名了一堆音频文件以符合您的要求。
Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
Speed Variable = 0 playing file = audio000.wav
........
Speed Variable = 1 playing file = audio001.wav
........
Speed Variable = 2 playing file = audio002.wav
........
Speed Variable = 3 playing file = audio003.wav
........
Speed Variable = 5 playing file = audio005.wav
........
Speed Variable = 6 playing file = audio006.wav
........
Speed Variable = 7 playing file = audio007.wav
........
Speed Variable = 8 playing file = audio008.wav
........
Speed Variable = 9 playing file = audio009.wav
........
Speed Variable = 10 playing file = audio0010.wav
........
Speed Variable = 11 playing file = audio0011.wav
........
Speed Variable = 12 playing file = audio0012.wav
........
Speed Variable = 13 playing file = audio0013.wav
........
Speed Variable = 14 playing file = audio0014.wav
........
Speed Variable = 15 playing file = audio0015.wav
........
Speed Variable = 16 playing file = audio0016.wav
........
Speed Variable = 17 playing file = audio0017.wav
........
Speed Variable = 18 playing file = audio0018.wav
........
Speed Variable = 19 playing file = audio0019.wav
........
Speed Variable = 20 playing file = audio0020.wav
........
Speed Variable = 21 playing file = audio0021.wav
........
Speed Variable = 22 playing file = audio0022.wav
........
Speed Variable = 23 playing file = audio0023.wav
........
Speed Variable = 24 playing file = audio0024.wav
........
>>>