From 5682590cedb8c6f0040ce39514e8a7b804e7c143 Mon Sep 17 00:00:00 2001 From: marcsello Date: Thu, 1 Oct 2020 17:58:17 +0200 Subject: [PATCH] Changed audio player to simpleaudio --- birbnetes_iot_platform_raspberry/__init__.py | 2 +- .../playback_stuff.py | 29 +++++++++++++++---- requirements.txt | 2 +- setup.py | 2 +- 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/birbnetes_iot_platform_raspberry/__init__.py b/birbnetes_iot_platform_raspberry/__init__.py index 4c1e2d5..7e38e44 100644 --- a/birbnetes_iot_platform_raspberry/__init__.py +++ b/birbnetes_iot_platform_raspberry/__init__.py @@ -1,3 +1,3 @@ from .led_stuff import BirbnetesIoTPlatformStatusDriver, BlinkenLights -from .playback_stuff import BirbnetesIoTPlatformPlaybackDriver +from .playback_stuff import BirbnetesIoTPlatformPlaybackDriver, ShuffledFolderPlayer from .record_stuff import BirbnetesIoTPlatformRecordDriver, SlicedRecorder diff --git a/birbnetes_iot_platform_raspberry/playback_stuff.py b/birbnetes_iot_platform_raspberry/playback_stuff.py index 595af03..44cdd25 100644 --- a/birbnetes_iot_platform_raspberry/playback_stuff.py +++ b/birbnetes_iot_platform_raspberry/playback_stuff.py @@ -1,16 +1,33 @@ -from playsound import playsound +import simpleaudio +import random +import os +import os.path + + +class ShuffledFolderPlayer: + + def __init__(self, folder: str): + self._sounds = [] + for folder_element in os.listdir(folder): + self._sounds.append( + simpleaudio.WaveObject.from_wave_file(os.path.join(folder, folder_element)) + ) + + def play_one_random(self): + random.choice(self._sounds).play() class BirbnetesIoTPlatformPlaybackDriver: + shuffled_folder_player = None @classmethod - def init(cls): - pass + def init(cls, folder: str = '/var/lib/birbnetes/enemy_soudns'): + cls.shuffled_folder_player = ShuffledFolderPlayer(folder) @classmethod - def play_audio(cls, audiofile: str): - playsound(audiofile) + def play_one_random(cls): + cls.shuffled_folder_player.play_one_random() @classmethod def cleanup(cls): - pass + simpleaudio.stop_all() diff --git a/requirements.txt b/requirements.txt index 2de630e..f85b378 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ RPi.GPIO pyalsaaudio -playsound \ No newline at end of file +simpleaudio \ No newline at end of file diff --git a/setup.py b/setup.py index 784a78a..0cf45ba 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ from setuptools import setup, find_packages with open('README.md') as readme_file: readme = readme_file.read() -requirements = ['RPi.GPIO', 'pyalsaaudio', 'playsound'] +requirements = ['RPi.GPIO', 'pyalsaaudio', 'simpleaudio'] setup_requirements = ['pytest-runner', ]