import pygame as pg, sys
from pygame.locals import *
import os
pg.mixer.pre_init(44100, 16, 2, 4096)
pg.init()
a = pg.mixer.music.load("./Sounds/ChessDrop2.wav")
a.play()
上面的代码是我写的,用来测试声音是否可以通过pygame播放。我的'ChessDrop2.wav'文件是一个16位的wav-PCM文件,因为当文件是32位PCM时,pygame将其识别为未知格式。现在,当我运行代码时错误消失,但下面的错误会弹出我的shell而不是。我已将声音文件分配给变量'a',所以声音不应播放?我的python版本是3.6.1,pygame是1.9.3。
a.play()
AttributeError: 'NoneType' object has no attribute 'play'
答案 0 :(得分:2)
此函数不返回任何要使用的对象,请查看文档:
https://www.pygame.org/docs/ref/music.html#pygame.mixer.music.load
加载文件后,您应该使用
pg.mixer.music.play()
答案 1 :(得分:0)
由于@CaMMelo声明from pygame import mixer
mixer.init()
sound = mixer.Sound("yourWaveFile.wav")
sound.play()
方法不返回对象。
但是,如果您在加载后查找返回对象,则可能需要尝试pygame.mixer.Sound。
pygame.mixer.Sound
创建一个新的Sound对象
从文件或缓冲区对象
from Queue import Queue
from threading import Thread
class My_Parser(tweepy.StreamListener):
def __init__(self, q = Queue()):
num_worker_threads = 4
self.q = q
for i in range(num_worker_threads):
t = Thread(target=self.do_stuff)
t.daemon = True
t.start()
def on_data(self, data):
self.q.put(data)
def do_stuff(self):
while True:
do_whatever(self.q.get())
self.q.task_done()