Table of Contents

Interface IMediaControl

Namespace
RenderHeads.Media.AVProVideo
Assembly
AVProVideo.Runtime.dll
public interface IMediaControl

Methods

Name Description
AddChunkToMediaBuffer(byte[], ulong, ulong)
AudioConfigurationChanged(bool)
CanPlay()
CloseMedia()
EndOpenMediaFromBuffer()
GetAudioBufferedSampleCount()
GetAudioChannelCount()
GetAudioChannelMask()
GetBalance()
GetBufferedTimes()

Returns a range of time values that contain fully downloaded segments, which can be seeked to immediately without requiring additional downloading

GetCurrentTime()

Returns the current video time in seconds

GetCurrentTimeFrames(float)

Returns the current video time in frames, range is [0, GetMaxFrameNumber()] NOTE: For best results the video should be encoded as keyframes only and have no audio track, or an audio track with the same length as the video track

GetLastError()
GetLastExtendedErrorCode()
GetPlaybackRate()
GetProgramDateTime()

Returns the current video date and time usually from the EXT-X-PROGRAM-DATE-TIME tag on HLS streams Only supported on macOS, iOS, tvOS and Android (using ExoPlayer API) And Windows 10 using WinRT API

GetSeekableTimes()

Returns a range of time values that can be seeked in seconds

GetTextureProperties(out FilterMode, out TextureWrapMode, out int)
GetVolume()
GrabAudio(float[], int, int)

Copies the specified amount of audio into the buffer If the specified amount is not yet available then nothing no samples are copied The number of audio samples grabbed are returned

HasMetaData()
IsBuffering()
IsExternalPlaybackActive()

Check to see if external playback is currently active on the player.

IsFinished()
IsLooping()
IsMuted()
IsPaused()
IsPlaying()
IsSeeking()
MuteAudio(bool)
OpenMedia(string, long, string, MediaHints, int, bool)

Be careful using this method directly. It is best to instead use the OpenMedia() method in the MediaPlayer component as this will set up the events correctly and also perform other checks customHttpHeaders is in the format "key1:value1\r\nkey2:value2\r\n"=

OpenMediaFromBuffer(byte[])
Pause()
Play()
ResetAudioFocus()
ResetAudioHeadRotation()
Rewind()
Seek(double)

The time in seconds seeked will be to the exact time This can take a long time is the keyframes are far apart Some platforms don't support this and instead seek to the closest keyframe

SeekFast(double)

The time in seconds seeked will be to the closest keyframe

SeekToFrame(int, float)

Seek to a specific frame, range is [0, GetMaxFrameNumber()] NOTE: For best results the video should be encoded as keyframes only and have no audio track, or an audio track with the same length as the video track

SeekToFrameRelative(int, float)

Seek forwards or backwards relative to the current frame NOTE: For best results the video should be encoded as keyframes only and have no audio track, or an audio track with the same length as the video track

SeekWithTolerance(double, double, double)

The time in seconds seeked to will be within the range [time-timeDeltaBefore, time+timeDeltaAfter] for efficiency. Only supported on macOS, iOS and tvOS. Other platforms will automatically pass through to Seek()

SetAllowsExternalPlayback(bool)

Set whether the player is allowed to switch to external playback, e.g. AirPlay.

SetAudioChannelMode(Audio360ChannelMode)
SetAudioFocusEnabled(bool)
SetAudioFocusProperties(float, float)
SetAudioFocusRotation(Quaternion)
SetAudioHeadRotation(Quaternion)
SetBalance(float)
SetExternalPlaybackVideoGravity(ExternalPlaybackVideoGravity)

Sets the video gravity of the player for external playback only.

SetKeyServerAuthToken(string)
SetLooping(bool)
SetOverrideDecryptionKey(byte[])
SetPlayWithoutBuffering(bool)
SetPlaybackRate(float)
SetTextureProperties(FilterMode, TextureWrapMode, int)
SetVolume(float)
StartOpenMediaFromBuffer(ulong)
Stop()
WaitForNextFrame(Camera, int)