Воспроизведение аудиофайла на сервере из django
У меня есть raspberry pi, который я подключил к датчику дверного звонка, чтобы он воспроизводил различные звуки, когда люди входят в здание. Сейчас я просто сделал короткий скрипт для воспроизведения этих звуков из любого каталога, и он отлично работает.
Я решил, что будет проще загружать звуки и организовывать порядок их воспроизведения, если я создам веб-сервер, а так как я обычно использую django для всех веб-серверов, я подумал, что смогу заставить его работать. Я знаю, что это довольно большой молоток для такого маленького гвоздя, но я использую его регулярно, поэтому он прост для меня.
Этот код, когда я помещаю его в django InteractiveConsole, воспроизводит звук просто отлично. Когда я пытаюсь вызвать его из PUT-запроса в представлении, он не воспроизводит звук, но и не выдает никаких ошибок. Это происходит как на моем компьютере, так и на pi.
>>> import vlc
>>> media_player = vlc.MediaPlayer()
>>> media = vlc.Media("/home/pi/chime/media/clips/clip1.mp3")
>>> media_player.set_media(media)
>>> media_player.play()
Есть ли что-то, что не позволяет запускать подобные вызовы в представлении django? Есть ли способ обойти это?
После некоторых вопросов, которые мне задали, я понял, что использовал BASE_DIR вместо MEDIA_ROOT для каталога с клипами. Это устранило проблему на компьютере разработчика, но при работе с Apache все равно не работало, пока я не добавил пользователя www-data
в группы audio
, pulse
и pulse-access
.