mirror of
https://github.com/liberatedsystems/openCom-Companion.git
synced 2024-11-24 14:20:37 +01:00
Audio output
This commit is contained in:
parent
768943e166
commit
3fc67ceb2b
@ -30,11 +30,14 @@ class AndroidAudio(Audio):
|
|||||||
self._check_thread = None
|
self._check_thread = None
|
||||||
self._finished_callback = None
|
self._finished_callback = None
|
||||||
self._format = "opus"
|
self._format = "opus"
|
||||||
|
self.is_playing = False
|
||||||
|
|
||||||
def _check_playback(self):
|
def _check_playback(self):
|
||||||
while self._player and self._player.isPlaying():
|
while self._player and self._player.isPlaying():
|
||||||
time.sleep(0.25)
|
time.sleep(0.25)
|
||||||
|
|
||||||
|
self.is_playing = False
|
||||||
|
|
||||||
if self._finished_callback and callable(self._finished_callback):
|
if self._finished_callback and callable(self._finished_callback):
|
||||||
self._check_thread = None
|
self._check_thread = None
|
||||||
self._finished_callback(self)
|
self._finished_callback(self)
|
||||||
@ -45,7 +48,7 @@ class AndroidAudio(Audio):
|
|||||||
if self._format == "aac":
|
if self._format == "aac":
|
||||||
self._recorder.setAudioSource(AudioSource.DEFAULT)
|
self._recorder.setAudioSource(AudioSource.DEFAULT)
|
||||||
self._recorder.setAudioSamplingRate(48000)
|
self._recorder.setAudioSamplingRate(48000)
|
||||||
self._recorder.setAudioEncodingBitRate(128000)
|
self._recorder.setAudioEncodingBitRate(64000)
|
||||||
self._recorder.setAudioChannels(1)
|
self._recorder.setAudioChannels(1)
|
||||||
self._recorder.setOutputFormat(OutputFormat.MPEG_4)
|
self._recorder.setOutputFormat(OutputFormat.MPEG_4)
|
||||||
self._recorder.setAudioEncoder(AudioEncoder.AAC)
|
self._recorder.setAudioEncoder(AudioEncoder.AAC)
|
||||||
@ -53,7 +56,7 @@ class AndroidAudio(Audio):
|
|||||||
else:
|
else:
|
||||||
self._recorder.setAudioSource(AudioSource.DEFAULT)
|
self._recorder.setAudioSource(AudioSource.DEFAULT)
|
||||||
self._recorder.setAudioSamplingRate(48000)
|
self._recorder.setAudioSamplingRate(48000)
|
||||||
self._recorder.setAudioEncodingBitRate(128000)
|
self._recorder.setAudioEncodingBitRate(16000)
|
||||||
self._recorder.setAudioChannels(1)
|
self._recorder.setAudioChannels(1)
|
||||||
self._recorder.setOutputFormat(OutputFormat.OGG)
|
self._recorder.setOutputFormat(OutputFormat.OGG)
|
||||||
self._recorder.setAudioEncoder(AudioEncoder.OPUS)
|
self._recorder.setAudioEncoder(AudioEncoder.OPUS)
|
||||||
@ -74,11 +77,14 @@ class AndroidAudio(Audio):
|
|||||||
self._player.release()
|
self._player.release()
|
||||||
self._player = None
|
self._player = None
|
||||||
|
|
||||||
|
self.is_playing = False
|
||||||
|
|
||||||
def _play(self):
|
def _play(self):
|
||||||
self._player = MediaPlayer()
|
self._player = MediaPlayer()
|
||||||
self._player.setDataSource(self.file_path)
|
self._player.setDataSource(self.file_path)
|
||||||
self._player.prepare()
|
self._player.prepare()
|
||||||
self._player.start()
|
self._player.start()
|
||||||
|
self.is_playing = True
|
||||||
|
|
||||||
self._check_thread = threading.Thread(target=self._check_playback, daemon=True)
|
self._check_thread = threading.Thread(target=self._check_playback, daemon=True)
|
||||||
self._check_thread.start()
|
self._check_thread.start()
|
||||||
@ -86,6 +92,9 @@ class AndroidAudio(Audio):
|
|||||||
def reload(self):
|
def reload(self):
|
||||||
self._stop()
|
self._stop()
|
||||||
|
|
||||||
|
def playing(self):
|
||||||
|
return self.is_playing
|
||||||
|
|
||||||
|
|
||||||
def instance():
|
def instance():
|
||||||
return AndroidAudio()
|
return AndroidAudio()
|
||||||
|
@ -15,11 +15,14 @@ class LinuxAudio(Audio):
|
|||||||
self._finished_callback = None
|
self._finished_callback = None
|
||||||
self._loaded_path = None
|
self._loaded_path = None
|
||||||
self.sound = None
|
self.sound = None
|
||||||
|
self.is_playing = False
|
||||||
|
|
||||||
def _check_playback(self):
|
def _check_playback(self):
|
||||||
while self.sound != None and self.sound.state == "play":
|
while self.sound != None and self.sound.state == "play":
|
||||||
time.sleep(0.25)
|
time.sleep(0.25)
|
||||||
|
|
||||||
|
self.is_playing = False
|
||||||
|
|
||||||
if self._finished_callback and callable(self._finished_callback):
|
if self._finished_callback and callable(self._finished_callback):
|
||||||
self._check_thread = None
|
self._check_thread = None
|
||||||
self._finished_callback(self)
|
self._finished_callback(self)
|
||||||
@ -31,6 +34,7 @@ class LinuxAudio(Audio):
|
|||||||
def _stop(self):
|
def _stop(self):
|
||||||
if self.sound != None and self.sound.state == "play":
|
if self.sound != None and self.sound.state == "play":
|
||||||
self.sound.stop()
|
self.sound.stop()
|
||||||
|
self.is_playing = False
|
||||||
|
|
||||||
def _play(self):
|
def _play(self):
|
||||||
if self.sound == None or self._loaded_path != self._file_path:
|
if self.sound == None or self._loaded_path != self._file_path:
|
||||||
@ -46,6 +50,9 @@ class LinuxAudio(Audio):
|
|||||||
self._loaded_path = None
|
self._loaded_path = None
|
||||||
self.sound = None
|
self.sound = None
|
||||||
|
|
||||||
|
def playing(self):
|
||||||
|
return self.is_playing
|
||||||
|
|
||||||
|
|
||||||
def instance():
|
def instance():
|
||||||
return LinuxAudio()
|
return LinuxAudio()
|
||||||
|
Loading…
Reference in New Issue
Block a user