如何在 Python 中存储声音?
How to store sounds in Python?
我正在尝试制作节拍垫。我以这样一种方式编写了这个程序,即在按下 a 时演奏底鼓,在按下 s 时演奏小鼓。如果我通过按 a-s-a-s 来制作基本节拍,有什么方法可以保存正在制作的声音吗?
import pygame
pygame.init()
screen = pygame.display.set_mode((800,800))
while True:
screen.fill((255,255,255))
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_a:
pygame.mixer.music.load('Kick1.mp3')
pygame.mixer.music.play()
if event.key == pygame.K_s:
pygame.mixer.music.load('Snare1.mp3')
pygame.mixer.music.play()
if event.key == pygame.K_w:
pygame.quit()
quit()
pygame.display.update()
pygame.display.set_caption('Beat pad')
这是我用来读写声音的代码:
f = open ('Kick1.mp3', 'rb')
file = f.read()
f.close()
f = open ('Snare1.mp3', 'rb')
file1 = f.read()
x = open ('Kick3.mp3', 'ab')
x.write(file)
x.write(file1)
因为它是 mp3 文件,所以不能像文本文件一样阅读,也不能 appended/written 像文本文件一样阅读。它应该使用 'rb' 作为二进制文件读取,也应该使用 'ab'
像二进制文件一样附加
这里两个不同文件的声音,即..Kick1.mp3 和 Snare1.mp3 将作为一个声音存储在一个文件 'Kick3.mp3' 中(因为我是附加而不是写入它)。 Kick3.mp3 不会退出,因此它将由 python 创建,声音将存储在其中。
我正在尝试制作节拍垫。我以这样一种方式编写了这个程序,即在按下 a 时演奏底鼓,在按下 s 时演奏小鼓。如果我通过按 a-s-a-s 来制作基本节拍,有什么方法可以保存正在制作的声音吗?
import pygame
pygame.init()
screen = pygame.display.set_mode((800,800))
while True:
screen.fill((255,255,255))
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_a:
pygame.mixer.music.load('Kick1.mp3')
pygame.mixer.music.play()
if event.key == pygame.K_s:
pygame.mixer.music.load('Snare1.mp3')
pygame.mixer.music.play()
if event.key == pygame.K_w:
pygame.quit()
quit()
pygame.display.update()
pygame.display.set_caption('Beat pad')
这是我用来读写声音的代码:
f = open ('Kick1.mp3', 'rb')
file = f.read()
f.close()
f = open ('Snare1.mp3', 'rb')
file1 = f.read()
x = open ('Kick3.mp3', 'ab')
x.write(file)
x.write(file1)
因为它是 mp3 文件,所以不能像文本文件一样阅读,也不能 appended/written 像文本文件一样阅读。它应该使用 'rb' 作为二进制文件读取,也应该使用 'ab'
像二进制文件一样附加这里两个不同文件的声音,即..Kick1.mp3 和 Snare1.mp3 将作为一个声音存储在一个文件 'Kick3.mp3' 中(因为我是附加而不是写入它)。 Kick3.mp3 不会退出,因此它将由 python 创建,声音将存储在其中。