3#include <AUI/Common/AObject.h>
4#include <AUI/Common/ASignal.h>
5#include <AUI/Url/AUrl.h>
6#include <AUI/Audio/ASoundResampler.h>
7#include <AUI/Audio/VolumeLevel.h>
15class API_AUI_AUDIO IAudioPlayer:
public AObject {
17 explicit IAudioPlayer(
AUrl url);
48 return mPlaybackStatus;
56 return mResampledStream;
70 bool loop() const noexcept {
84 aui::audio::VolumeLevel
volume() const noexcept {
95 const AUrl& url() const noexcept {
113 bool isInitialized() const noexcept {
114 return mResampledStream !=
nullptr;
119 void initializeIfNeeded() {
120 if (!isInitialized()) {
128 aui::audio::VolumeLevel mVolume = aui::audio::VolumeLevel::MAX;
130 _<ISoundInputStream> mSourceStream;
131 _<ASoundResampler> mResampledStream;
132 PlaybackStatus mPlaybackStatus = PlaybackStatus::STOPPED;
135 virtual void playImpl() = 0;
136 virtual void pauseImpl() = 0;
137 virtual void stopImpl() = 0;
139 virtual void onVolumeSet() { }
140 virtual void onLoopSet() { }
Uniform Resource Locator implementation.
Definition AUrl.h:31
void pause()
Pauses audio playback keeping playback progress.
emits read
On sound stream read.
Definition IAudioPlayer.h:110
const _< ASoundResampler > & resampledStream() const noexcept
Get resampled stream for playback.
Definition IAudioPlayer.h:55
void onFinished()
Called By AAudioMixer when the playback is finished.
void setVolume(aui::audio::VolumeLevel volume)
Set level of volume.
void setLoop(bool loop)
Set loop flag, is loop flag is true then audio playback wouldn't be stopped after it ends and sound s...
bool loop() const noexcept
Definition IAudioPlayer.h:70
void stop()
Pauses audio playback without keeping playback progress.
PlaybackStatus playbackStatus() const noexcept
Definition IAudioPlayer.h:47
void play()
Starts audio playback, if playback was previously paused, it will continue from where it was paused.
emits finished
On playback finished.
Definition IAudioPlayer.h:105
PlaybackStatus
Playback status depends on last called function among play(), pause(), stop().
Definition IAudioPlayer.h:23
aui::audio::VolumeLevel volume() const noexcept
Definition IAudioPlayer.h:84
An std::weak_ptr with AUI extensions.
Definition SharedPtrTypes.h:179
ASignal< Args... > emits
A signal declaration.
Definition ASignal.h:572