Объект NoneType не имеет атрибута play
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 распознал его как неизвестный формат. Теперь эта ошибка исчезла, когда я запустил код, но вместо этого в моей оболочке появляется ошибка ниже. Я назначил звуковой файл переменной 'a', поэтому звук не должен воспроизводиться? Моя версия python - 3.6.1, а pygame - 1.9.3.
a.play()
AttributeError: 'NoneType' object has no attribute 'play'
2 ответа
Эта функция не возвращает никакого объекта, который можно использовать, проверьте документацию:
https://www.pygame.org/docs/ref/music.html
после загрузки файла вы должны использовать
pg.mixer.music.play()
Как сказал @CaMMelo pygame.mixer.music.load(filename)
Метод не возвращает объект.
Однако, если вы ищете возвращаемый объект после загрузки, вы можете попробовать pygame.mixer.Sound.
pygame.mixer.Sound
Создать новый объект Sound из файла или объекта буфера
from pygame import mixer
mixer.init()
sound = mixer.Sound("yourWaveFile.wav")
sound.play()