You.i Engine
CYIAVPlayer Class Reference

Detailed Description

Implementation of abstract video player for iOS, tvOs and OSX.

Apps must include AVFoundation.framework and CoreMedia.framework

#include <player/YiAVPlayer.h>

Inheritance diagram for CYIAVPlayer:

Public Member Functions

 CYIAVPlayer ()
 
virtual ~CYIAVPlayer ()
 
const std::vector< CYIAbstractVideoPlayer::ClosedCaptionsTrackInfoGetClosedCaptionsTracksFromMediaSelectionGroup () const
 
const std::vector< CYIAbstractVideoPlayer::ClosedCaptionsTrackInfoGetClosedCaptionsTracksFromTrackList () const
 
void EnableAutoExternalPlaybackWhenAvailable (bool bEnabled)
 
- Public Member Functions inherited from CYIAbstractVideoPlayer
virtual ~CYIAbstractVideoPlayer ()
 
CYIString GetName () const
 
CYIString GetVersion () const
 
Statistics GetStatistics () const
 
void Init ()
 
void Prepare (const CYIUrl &videoURI, STREAMING_FORMAT eFormatHint, CYIAbstractVideoPlayer::PLAYBACK_STATE eInitialState=CYIAbstractVideoPlayer::PLAYBACK_PAUSED, std::unique_ptr< DRMConfiguration > pDRMConfiguration=nullptr)
 
void Prepare (const std::shared_ptr< CYIAssetVideo > &videoAsset, STREAMING_FORMAT eFormatHint, CYIAbstractVideoPlayer::PLAYBACK_STATE eInitialState=CYIAbstractVideoPlayer::PLAYBACK_PAUSED, std::unique_ptr< DRMConfiguration > pDRMConfiguration=nullptr)
 
void Play ()
 
void Pause ()
 
void Stop ()
 
void Seek (uint64_t uSeekPositionMs)
 
bool SupportsFormat (STREAMING_FORMAT eStreamingFormat, DRM_SCHEME eDRMScheme=DRM_NONE)
 
uint64_t GetDurationMs () const
 
uint64_t GetCurrentTimeMs () const
 
CYIAbstractVideoPlayer::PlayerState GetPlayerState () const
 
bool AreClosedCaptionsTracksAvailable () const
 
bool SelectClosedCaptionsTrack (uint32_t uID)
 
std::vector< ClosedCaptionsTrackInfoGetClosedCaptionsTracks () const
 
ClosedCaptionsTrackInfo GetActiveClosedCaptionsTrack () const
 
CYIClosedCaptionsDispatcherGetClosedCaptionsDispatcher () const
 
CYIVideoSurfaceGetSurface () const
 
bool AreAudioTracksAvailable () const
 
bool SelectAudioTrack (uint32_t uID)
 
std::vector< AudioTrackInfoGetAudioTracks () const
 
AudioTrackInfo GetActiveAudioTrack () const
 
bool IsMuted () const
 
void Mute (bool bMute)
 
void SetMaxBitrate (uint64_t uMaxBitrate)
 
void SetUserAgent (const CYIString &userAgent)
 
void SetVideoMetadata (const CYIAbstractVideoPlayer::VideoMetadata &metadata)
 
const DRMConfigurationGetDRMConfiguration () const
 
DRMConfigurationGetDRMConfiguration ()
 
- Public Member Functions inherited from CYISignalHandler
 CYISignalHandler ()
 
 CYISignalHandler (const CYISignalHandler &rSignalHandler)
 
virtual ~CYISignalHandler ()
 
CYISignalHandleroperator= (const CYISignalHandler &rSignalHandler)
 
void MoveToThread (CYIThread *pThread)
 This function allows the user to override the default thread affinity to any CYIThread that may or may not be running. More...
 
CYIThreadHandle GetThreadAffinity () const
 
void SetThreadAffinity (const CYIThreadHandle &rThreadAffinity)
 
virtual bool IsConnected () const
 
virtual bool IsConnected (const CYISignalBase &rSignal) const
 
void Disconnect (CYISignalBase &rSignal)
 
void DisconnectFromAllSignals ()
 
- Public Member Functions inherited from CYIThread::Listener
 Listener ()
 
virtual ~Listener ()
 
virtual void OnThreadStarted (CYIThread *)
 
virtual void OnThreadTerminated (CYIThread *)
 
virtual void OnThreadFinished (CYIThread *)
 
- Public Member Functions inherited from CYIScriptableObject
 CYIScriptableObject ()
 
 CYIScriptableObject (const CYIScriptableObject &other)
 
CYIScriptableObjectoperator= (const CYIScriptableObject &other)
 
virtual ~CYIScriptableObject ()
 
CYIBindingImplementationGetBindingImplementation () const
 
void SetBindingImplementation (CYIBindingImplementation *pBindingImplementation)
 
virtual const CYIRuntimeTypeInfoGetRuntimeTypeInfoForScriptObject () const
 

Friends

class CYIAVPlayerPriv
 

Additional Inherited Members

- Public Types inherited from CYIAbstractVideoPlayer
enum  MEDIA_STATE {
  MEDIA_UNLOADED,
  MEDIA_PREPARING,
  MEDIA_READY
}
 
enum  PLAYBACK_STATE {
  PLAYBACK_PLAYING,
  PLAYBACK_PAUSED,
  PLAYBACK_BUFFERING
}
 
enum  STREAMING_FORMAT {
  HLS = 0,
  SMOOTH,
  DASH,
  MP4
}
 
enum  DRM_SCHEME {
  DRM_NONE = 0,
  DRM_FAIRPLAY,
  DRM_PLAYREADY,
  DRM_WIDEVINE_MODULAR
}
 
enum  ERROR_CODE {
  PLAYBACK_ERROR,
  UNSUPPORTED_FORMAT,
  STATE_TRANSITION_ERROR,
  DRM_ERROR,
  UNKNOWN
}
 
using VideoMetadata = std::map< CYIString, CYIString >
 
- Public Attributes inherited from CYIAbstractVideoPlayer
CYISignal BufferingStarted
 
CYISignal BufferingEnded
 
CYISignal< ErrorErrorOccurred
 
CYISignal Preparing
 
CYISignal Ready
 
CYISignal Playing
 
CYISignal Paused
 
CYISignal PlaybackComplete
 
CYISignal Finalized
 
CYISignal< uint64_t > CurrentTimeUpdated
 
CYISignal< uint64_t > DurationChanged
 
CYISignal< const CYIAbstractVideoPlayer::PlayerState & > PlayerStateChanged
 
CYISignal< std::vector< AudioTrackInfo > > AvailableAudioTracksChanged
 
CYISignal< std::vector< ClosedCaptionsTrackInfo > > AvailableClosedCaptionsTracksChanged
 
- Protected Member Functions inherited from CYIAbstractVideoPlayer
 CYIAbstractVideoPlayer ()
 
const std::shared_ptr< CYIMaterial > & GetVideoMaterial () const
 
void SetVideoSurfaceSize (const glm::ivec2 &size)
 
void ChangeInitialPlaybackState (CYIAbstractVideoPlayer::PLAYBACK_STATE eInitialState)
 
CYIAbstractVideoPlayer::PLAYBACK_STATE GetRequestedInitialPlaybackState () const
 
void CheckAndNotifyMediaTracksChanged ()
 
void UpdateCurrentTime ()
 
- Protected Attributes inherited from CYIAbstractVideoPlayer
CYISignal< ErrorNotifyErrorOccurred
 
CYISignal NotifyPlaybackComplete
 
CYISignal< uint64_t > NotifyDurationChanged
 
std::unique_ptr< CYIVideoPlayerStateManagerm_pStateManager
 
std::unique_ptr< CYIClosedCaptionsDispatcherm_pClosedCaptionsDispatcher
 
std::shared_ptr< DRMConfigurationm_pDRMConfiguration
 
uint64_t m_uMaxBitrate
 

Constructor & Destructor Documentation

CYIAVPlayer::CYIAVPlayer ( )
virtual CYIAVPlayer::~CYIAVPlayer ( )
virtual

Member Function Documentation

void CYIAVPlayer::EnableAutoExternalPlaybackWhenAvailable ( bool  bEnabled)

When enabled and an external display is active, playback will automatically switch to the external display.

Note
Enabling this setting on multiple players in the same screen will give inconsistent results.
This feature has no effect on OSX.
This feature is disabled by default.
const std::vector<CYIAbstractVideoPlayer::ClosedCaptionsTrackInfo> CYIAVPlayer::GetClosedCaptionsTracksFromMediaSelectionGroup ( ) const

Returns the closed captions and subtitle information present in the asset's media selection group, which corresponds to the information in the asset manifest.

See also
GetClosedCaptionsTracksFromTrackList
const std::vector<CYIAbstractVideoPlayer::ClosedCaptionsTrackInfo> CYIAVPlayer::GetClosedCaptionsTracksFromTrackList ( ) const

Returns the closed captions information present in the video tracks, which corresponds to in-stream CEA 608/708 data.

Note
GetClosedCaptionsTracksFromMediaSelectionGroup may detect some or all of these tracks as well if, for example, an HLS manifest contains #EXT-X-MEDIA:TYPE=CLOSED-CAPTIONS tags that correspond to the in-stream captions track.
See also
GetClosedCaptionsTracksFromMediaSelectionGroup

Friends And Related Function Documentation

friend class CYIAVPlayerPriv
friend

The documentation for this class was generated from the following file: