【问题标题】:playing sound from buffer using pygame使用 pygame 从缓冲区播放声音
【发布时间】:2016-03-29 20:39:33
【问题描述】:

我正在尝试从 pygame 中的缓冲区播放声音。下面的代码正确地播放了一次声音,但结果是TypeError: must be string without null bytes, not str

f = open('sound.wav', 'rb')
data = f.read()
buffer = data[44:len(data)] # start after header
pygame.mixer.Sound(buffer).play()

因为声音正确播放一次后出现错误,所以我怀疑play() 期望buffer 更长。

【问题讨论】:

    标签: python audio pygame buffer playback


    【解决方案1】:

    我认为您正在使用 python 内置函数 buffer 作为变量。
    这是buffer 上的python 文档。

    我能够复制您的错误TypeError: must be string without null bytes, not str

    使用缓冲区而不是变量进行赋值时不会出错的修改代码。

    import pygame
    pygame.mixer.init()
    
    f = open('sound.wav', 'rb')
    data = f.read()
    #buffer = data[44:len(data)] # start after header
    myBuffer = buffer(data , 44,len(data)) 
    pygame.mixer.Sound(myBuffer).play()
    

    【讨论】:

    • 哇,我现在感觉自己像个白痴。非常感谢您了解这一点。
    猜你喜欢
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    相关资源
    最近更新 更多