using System; using UnityEngine; namespace RenderHeads.Media.AVProVideo { public interface IMediaControl { bool OpenVideoFromFile(string path, long offset, string httpHeaderJson); bool OpenVideoFromBuffer(byte[] buffer); void CloseVideo(); void SetLooping(bool bLooping); bool IsLooping(); bool HasMetaData(); bool CanPlay(); bool IsPlaying(); bool IsSeeking(); bool IsPaused(); bool IsFinished(); bool IsBuffering(); void Play(); void Pause(); void Stop(); void Rewind(); void Seek(float timeMs); void SeekFast(float timeMs); float GetCurrentTimeMs(); float GetPlaybackRate(); void SetPlaybackRate(float rate); void MuteAudio(bool bMute); bool IsMuted(); void SetVolume(float volume); void SetBalance(float balance); float GetVolume(); float GetBalance(); int GetCurrentAudioTrack(); void SetAudioTrack(int index); int GetCurrentVideoTrack(); void SetVideoTrack(int index); float GetBufferingProgress(); int GetBufferedTimeRangeCount(); bool GetBufferedTimeRange(int index, ref float startTimeMs, ref float endTimeMs); ErrorCode GetLastError(); void SetTextureProperties(FilterMode filterMode = FilterMode.Bilinear, TextureWrapMode wrapMode = TextureWrapMode.Clamp, int anisoLevel = 1); void GrabAudio(float[] buffer, int floatCount, int channelCount); int GetNumAudioChannels(); void SetAudioHeadRotation(Quaternion q); void ResetAudioHeadRotation(); void SetAudioChannelMode(Audio360ChannelMode channelMode); void SetAudioFocusEnabled(bool enabled); void SetAudioFocusProperties(float offFocusLevel, float widthDegrees); void SetAudioFocusRotation(Quaternion q); void ResetAudioFocus(); bool WaitForNextFrame(Camera dummyCamera, int previousFrameCount); } }