mirror of
https://github.com/tym1116/BH3.git
synced 2025-12-19 09:54:46 +01:00
124 lines
2.7 KiB
C#
124 lines
2.7 KiB
C#
using System;
|
|
using UnityEngine;
|
|
|
|
namespace RenderHeads.Media.AVProVideo
|
|
{
|
|
public abstract class BaseMediaPlayer : IMediaPlayer, IMediaControl, IMediaInfo, IMediaProducer, IDisposable
|
|
{
|
|
protected ErrorCode _lastError;
|
|
|
|
private FilterMode _defaultTextureFilterMode = FilterMode.Bilinear;
|
|
|
|
private TextureWrapMode _defaultTextureWrapMode = TextureWrapMode.Clamp;
|
|
|
|
private int _defaultTextureAnisoLevel = 1;
|
|
|
|
public abstract string GetVersion();
|
|
|
|
public abstract bool OpenVideoFromFile(string path);
|
|
|
|
public abstract void CloseVideo();
|
|
|
|
public abstract void SetLooping(bool bLooping);
|
|
|
|
public abstract bool IsLooping();
|
|
|
|
public abstract bool HasMetaData();
|
|
|
|
public abstract bool CanPlay();
|
|
|
|
public abstract void Play();
|
|
|
|
public abstract void Pause();
|
|
|
|
public abstract void Stop();
|
|
|
|
public abstract void Rewind();
|
|
|
|
public abstract void Seek(float timeMs);
|
|
|
|
public abstract void SeekFast(float timeMs);
|
|
|
|
public abstract float GetCurrentTimeMs();
|
|
|
|
public abstract float GetPlaybackRate();
|
|
|
|
public abstract void SetPlaybackRate(float rate);
|
|
|
|
public abstract float GetDurationMs();
|
|
|
|
public abstract int GetVideoWidth();
|
|
|
|
public abstract int GetVideoHeight();
|
|
|
|
public abstract float GetVideoDisplayRate();
|
|
|
|
public abstract bool HasAudio();
|
|
|
|
public abstract bool HasVideo();
|
|
|
|
public abstract bool IsSeeking();
|
|
|
|
public abstract bool IsPlaying();
|
|
|
|
public abstract bool IsPaused();
|
|
|
|
public abstract bool IsFinished();
|
|
|
|
public abstract bool IsBuffering();
|
|
|
|
public abstract Texture GetTexture();
|
|
|
|
public abstract int GetTextureFrameCount();
|
|
|
|
public abstract bool RequiresVerticalFlip();
|
|
|
|
public abstract void MuteAudio(bool bMuted);
|
|
|
|
public abstract bool IsMuted();
|
|
|
|
public abstract void SetVolume(float volume);
|
|
|
|
public abstract float GetVolume();
|
|
|
|
public abstract int GetAudioTrackCount();
|
|
|
|
public abstract int GetCurrentAudioTrack();
|
|
|
|
public abstract void SetAudioTrack(int index);
|
|
|
|
public abstract float GetVideoFrameRate();
|
|
|
|
public abstract float GetBufferingProgress();
|
|
|
|
public abstract void Update();
|
|
|
|
public abstract void Render();
|
|
|
|
public abstract void Dispose();
|
|
|
|
public ErrorCode GetLastError()
|
|
{
|
|
return _lastError;
|
|
}
|
|
|
|
public void SetTextureProperties(FilterMode filterMode = FilterMode.Bilinear, TextureWrapMode wrapMode = TextureWrapMode.Clamp, int anisoLevel = 0)
|
|
{
|
|
_defaultTextureFilterMode = filterMode;
|
|
_defaultTextureWrapMode = wrapMode;
|
|
_defaultTextureAnisoLevel = anisoLevel;
|
|
ApplyTextureProperties(GetTexture());
|
|
}
|
|
|
|
protected void ApplyTextureProperties(Texture texture)
|
|
{
|
|
if (texture != null)
|
|
{
|
|
texture.filterMode = _defaultTextureFilterMode;
|
|
texture.wrapMode = _defaultTextureWrapMode;
|
|
texture.anisoLevel = _defaultTextureAnisoLevel;
|
|
}
|
|
}
|
|
}
|
|
}
|