Co-authored-by: Clément Drouin <clement.drouin@mistral.ai> Co-authored-by: Clément Sirieix <clement.sirieix@mistral.ai> Co-authored-by: Gauthier Guinet <43207538+Gguinet@users.noreply.github.com> Co-authored-by: Kim-Adeline Miguel <kimadeline.miguel@mistral.ai> Co-authored-by: Michel Thomazo <51709227+michelTho@users.noreply.github.com> Co-authored-by: Quentin <torroba.q@gmail.com> Co-authored-by: Simon <80467011+sorgfresser@users.noreply.github.com> Co-authored-by: Simon Van de Kerckhove <simon.vandekerckhove@mistral.ai> Co-authored-by: Vincent G <10739306+VinceOPS@users.noreply.github.com> Co-authored-by: angelapopopo <angele.lenglemetz@mistral.ai> Co-authored-by: Mistral Vibe <vibe@mistral.ai>
36 lines
952 B
Python
36 lines
952 B
Python
from __future__ import annotations
|
|
|
|
from collections.abc import Callable
|
|
|
|
from vibe.core.audio_player import AlreadyPlayingError
|
|
from vibe.core.audio_player.audio_player_port import AudioFormat
|
|
|
|
|
|
class FakeAudioPlayer:
|
|
def __init__(self) -> None:
|
|
self._playing = False
|
|
self._on_finished: Callable[[], object] | None = None
|
|
|
|
@property
|
|
def is_playing(self) -> bool:
|
|
return self._playing
|
|
|
|
def play(
|
|
self,
|
|
audio_data: bytes,
|
|
audio_format: AudioFormat,
|
|
*,
|
|
on_finished: Callable[[], object] | None = None,
|
|
) -> None:
|
|
if self._playing:
|
|
raise AlreadyPlayingError("Already playing")
|
|
self._playing = True
|
|
self._on_finished = on_finished
|
|
|
|
def stop(self) -> None:
|
|
self._playing = False
|
|
|
|
def simulate_finished(self) -> None:
|
|
self._playing = False
|
|
if self._on_finished is not None:
|
|
self._on_finished()
|