如何解决如何使用Pygame播放正弦/方波?
我正在尝试使用Pygame的sndarray.make_sound
函数播放正弦波。但是,当我使用此数组播放它时:
np.sin(2 * np.pi * np.arange(44100) * 440 / 44100).astype(np.float32)
其中440
是频率,44100
是采样率,相反,会发出很大的刺耳噪声。这可以使用pyaudio.PyAudio()
起作用,但是我需要一些不会阻碍执行的东西。这也发生在方波中,但是在那里什么都没播放。我在channels=1
和mixer.pre_init
函数中使用mixer.init
。
我该如何解决?如果有帮助,我正在使用Mac。预先感谢!
解决方法
您可以将numpy数组直接加载到pygame.mixer.Sound
对象,然后play
进行加载:
import pygame
import numpy as np
pygame.mixer.init()
buffer = np.sin(2 * np.pi * np.arange(44100) * 440 / 44100).astype(np.float32)
sound = pygame.mixer.Sound(buffer)
sound.play(0)
pygame.time.wait(int(sound.get_length() * 1000))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。