下面是一个使用Pygame库制作的程序,可以从麦克风中获取音频并实时显示音频波动线的效果:

import pygame
import pygame.mixer
import pygame.sndarray
import numpy as np
import sounddevice as sd

# 初始化Pygame
pygame.init()

# 设置音频参数
sample_rate = 44100
channels = 1
buffer_size = 1024

# 初始化音频输入
sd.default.samplerate = sample_rate
sd.default.channels = channels

# 创建Pygame窗口
window_width = 800
window_height = 400
screen = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption("Real-time Audio Visualization")

# 创建音频缓冲区
buffer = np.zeros(buffer_size, dtype=np.int16)

# 创建音频播放器
pygame.mixer.init(sample_rate, -16, channels, 1024)
pygame.mixer.music.set_volume(0.5)

# 创建时钟对象
clock = pygame.time.Clock()

# 主循环
running = True
while running:
    # 处理事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 从麦克风中获取音频
    buffer = sd.rec(buffer_size, blocking=True).flatten()

    # 清空屏幕
    screen.fill((0, 0, 0))

    # 绘制音频波动线
    pygame.draw.lines(screen, (255, 255, 255), False, [(x, window_height/2 + buffer[x]/2) for x in range(buffer_size)], 2)

    # 更新屏幕
    pygame.display.flip()

    # 控制帧率
    clock.tick(60)

# 退出程序
pygame.quit()

这个程序使用sounddevice库从麦克风中获取音频,并使用Pygame库来显示音频波动线。程序会实时从麦克风中获取音频数据,并将数据绘制成波动线显示在屏幕上。

请注意,运行此程序需要安装以下库:Pygame、sounddevice、numpy。

希望对你有帮助

制作一个pygame程序要求博方音乐从麦克风中获取音频实现实时音频波动线

原文地址: https://www.cveoy.top/t/topic/hZ3E 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录