Python Музыкальные гудки, вызывающие ошибки - PullRequest
0 голосов
/ 30 мая 2020

Я начал использовать модуль MusicalBeeps , чтобы попробовать воспроизвести музыку c в Python, однако всякий раз, когда я пытаюсь заставить игрока воспроизводить шум, я получаю огромную ошибку. Мой код сейчас выглядит так:

import musicalbeeps as music

global TempPlayer

def PlayNote(Note, Octive, Accidental, Duration, Volume):
  #Accidental is either # (sharp) or b (flat) or '' (none)
  global TempPlayer
  TempPlayer = music.Player(volume = float(Volume), mute_output = False)
  TempPlayer.play_note("{}{}{}".format(Note, Octive, Accidental), Duration)
  TempPlayer = None

print("Running...")
PlayNote("B", 4, "#", 5, 1)
print("Done!")

Это пример, который они показали на веб-сайте, однако всякий раз, когда я пытаюсь запустить его, я получаю эту странную ошибку:

ALSA lib confmisc.c:767:(parse_card) cannot find card '0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM default
Traceback (most recent call last):
  File "main.py", line 13, in <module>
    PlayNote("B", 4, "#", 5, 1)
  File "main.py", line 9, in PlayNote
    TempPlayer.play_note("{}{}{}".format(Note, Octive, Accidental), Duration)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/musicalbeeps/beepsplayer.py", line 138, in play_note
    self.__write_stream(duration)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/musicalbeeps/beepsplayer.py", line 118, in __write_stream
    self._play_obj = sa.play_buffer(audio, 1, 2, self.rate)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/simpleaudio/shiny.py", line 60, in play_buffer
    play_id = _sa._play_buffer(audio_data, num_channels, bytes_per_sample,
_simpleaudio.SimpleaudioError: Error opening PCM device. -- CODE: -2 -- MSG: No such file or directory

BTW Я использую repl.it , чтобы сделать это, и я уже загрузил модуль musicbeeps в файл.

Пожалуйста, помогите, я просто пытаюсь сделать простой проект ?

1 Ответ

1 голос
/ 30 мая 2020

Спасибо за ссылки на установленный пакет - облегчает поиск решения. MusicalBeeps зависит от simpleaudio, который требует (по крайней мере, на linux - и поскольку вы опубликовали ошибки ALSA, я предполагаю, что это Linux), необходимо установить библиотеку разработки libasound2-dev. См. https://simpleaudio.readthedocs.io/en/latest/installation.html#linux -зависимости

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