15 #ifndef SHAKA_EMBEDDED_MEDIA_MEDIA_PLAYER_H_ 16 #define SHAKA_EMBEDDED_MEDIA_MEDIA_PLAYER_H_ 23 #include "../eme/implementation.h" 24 #include "../macros.h" 202 virtual void OnAddAudioTrack(std::shared_ptr<MediaTrack> track);
208 virtual void OnRemoveAudioTrack(std::shared_ptr<MediaTrack> track);
214 virtual void OnAddVideoTrack(std::shared_ptr<MediaTrack> track);
220 virtual void OnRemoveVideoTrack(std::shared_ptr<MediaTrack> track);
229 virtual void OnAddTextTrack(std::shared_ptr<TextTrack> track);
235 virtual void OnRemoveTextTrack(std::shared_ptr<TextTrack> track);
247 virtual void OnPlaybackRateChanged(
double old_rate,
double new_rate);
253 virtual void OnError(
const std::string& error);
260 virtual void OnAttachMse();
266 virtual void OnAttachSource();
269 virtual void OnDetach();
277 virtual void OnPlay();
283 virtual void OnSeeking();
290 virtual void OnWaitingForKey();
307 virtual void OnUserEvent(
const std::string&
name,
void* user_data);
316 void AddClient(
Client* client);
317 void RemoveClient(
Client* client);
319 void OnAddAudioTrack(std::shared_ptr<MediaTrack> track)
override;
320 void OnRemoveAudioTrack(std::shared_ptr<MediaTrack> track)
override;
321 void OnAddVideoTrack(std::shared_ptr<MediaTrack> track)
override;
322 void OnRemoveVideoTrack(std::shared_ptr<MediaTrack> track)
override;
323 void OnAddTextTrack(std::shared_ptr<TextTrack> track)
override;
324 void OnRemoveTextTrack(std::shared_ptr<TextTrack> track)
override;
329 void OnPlaybackRateChanged(
double old_rate,
double new_rate)
override;
330 void OnError(
const std::string& error)
override;
331 void OnAttachMse()
override;
332 void OnAttachSource()
override;
333 void OnDetach()
override;
334 void OnPlay()
override;
335 void OnSeeking()
override;
336 void OnWaitingForKey()
override;
338 void OnUserEvent(
const std::string&
name,
void* user_data)
override;
342 std::unique_ptr<Impl> impl_;
363 static void SetMediaPlayerForSupportChecks(
const MediaPlayer* player);
366 static const MediaPlayer* GetMediaPlayerForSupportChecks();
396 virtual void AddClient(
Client* client)
const = 0;
402 virtual void RemoveClient(
Client* client)
const = 0;
409 virtual std::vector<BufferedRange> GetBuffered()
const = 0;
418 virtual std::vector<std::shared_ptr<MediaTrack>> AudioTracks() = 0;
421 virtual std::vector<std::shared_ptr<const MediaTrack>> AudioTracks()
425 virtual std::vector<std::shared_ptr<MediaTrack>> VideoTracks() = 0;
428 virtual std::vector<std::shared_ptr<const MediaTrack>> VideoTracks()
432 virtual std::vector<std::shared_ptr<TextTrack>> TextTracks() = 0;
435 virtual std::vector<std::shared_ptr<const TextTrack>> TextTracks()
const = 0;
446 virtual std::shared_ptr<TextTrack> AddTextTrack(
448 const std::string& language) = 0;
461 virtual uint32_t Width()
const = 0;
464 virtual uint32_t Height()
const = 0;
467 virtual double Volume()
const = 0;
470 virtual void SetVolume(
double volume) = 0;
473 virtual bool Muted()
const = 0;
476 virtual void SetMuted(
bool muted) = 0;
486 virtual void Play() = 0;
493 virtual void Pause() = 0;
496 virtual double CurrentTime()
const = 0;
504 virtual void SetCurrentTime(
double time) = 0;
507 virtual double Duration()
const = 0;
513 virtual void SetDuration(
double duration) = 0;
518 virtual double PlaybackRate()
const = 0;
524 virtual void SetPlaybackRate(
double rate) = 0;
540 virtual bool AttachSource(
const std::string& src) = 0;
548 virtual bool AttachMse() = 0;
562 virtual bool AddMseBuffer(
const std::string& mime,
bool is_video,
574 virtual void LoadedMetaData(
double duration) = 0;
580 virtual void MseEndOfStream() = 0;
591 virtual bool SetEmeImplementation(
const std::string& key_system,
598 virtual void Detach() = 0;
605 #endif // SHAKA_EMBEDDED_MEDIA_MEDIA_PLAYER_H_
#define SHAKA_DECLARE_INTERFACE_METHODS(Type)