pygame.mixer.Sound играет 2 раза подряд - PullRequest
1 голос
/ 21 апреля 2020
        if click[0] == 1:
            fabian_sound = pygame.mixer.Sound('my_sound.wav')
            pygame.mixer.Sound.stop
            pygame.mixer.Sound.play(my_sound, 1)
            pygame.mixer.Sound.set_volume(my_sound, 0.1)

Привет, ребята, поэтому я сделал простой код, который, если вы нажмете на изображение, появится my_sound.wav, но есть одна проблема. Каждый раз, когда я нажимаю на изображение, my_sound.wav воспроизводится один раз и после 2-3 се c снова, даже если я ничего не нажимаю. Кроме того, похоже, что это немного замедлило, кто-нибудь может мне помочь с этим? спасибо! * * 1002

1 Ответ

1 голос
/ 21 апреля 2020

Звук повторяется 1 раз, поскольку для аргумента loops установлено значение 1.

Посмотрите на документы :

Циклы Аргумент управляет тем, сколько раз будет повторяться семпл после первого воспроизведения. Значение 5 означает, что звук будет воспроизводиться один раз, затем повторяться пять раз, и, следовательно, будет воспроизводиться в общей сложности шесть раз. Значение по умолчанию (ноль) означает, что Звук не повторяется, и поэтому воспроизводится только один раз.

Так что, если вы установите loops на 1, он будет повторяться один раз.

Кроме того, в опубликованном вами коде:
- вы загружаете my_sound.wav, но никогда не используете его.
- Строка pygame.mixer.Sound.stop также ничего не делает.
- Вместо pygame.mixer.Sound.play(my_sound, 1), вы должны вызывать метод для самого объекта, например my_sound.play() (заметьте, я также удалил аргумент loops). То же самое относится и к следующей строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...