123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347 |
- using System;
- using System.Text;
- using UnityEngine;
- //-----------------------------------------------------------------------------
- // Copyright 2015-2021 RenderHeads Ltd. All rights reserved.
- //-----------------------------------------------------------------------------
- namespace RenderHeads.Media.AVProVideo
- {
- /// <summary>
- /// This media player fakes video playback for platforms that aren't supported
- /// </summary>
- public sealed partial class NullMediaPlayer : BaseMediaPlayer
- {
- private bool _isPlaying = false;
- private bool _isPaused = false;
- private double _currentTime = 0.0;
- // private bool _audioMuted = false;
- private float _volume = 0.0f;
- private float _playbackRate = 1.0f;
- private bool _bLoop;
- private int _Width = 256;
- private int _height = 256;
- private Texture2D _texture;
- private Texture2D _texture_AVPro;
- private Texture2D _texture_AVPro1;
- private float _fakeFlipTime;
- private int _frameCount;
- private const float FrameRate = 10f;
- /// <inheritdoc/>
- public override string GetVersion()
- {
- return "0.0.0";
- }
- /// <inheritdoc/>
- public override string GetExpectedVersion()
- {
- return GetVersion();
- }
- /// <inheritdoc/>
- public override bool OpenMedia(string path, long offset, string httpHeader, MediaHints mediaHints, int forceFileFormat = 0, bool startWithHighestBitrate = false)
- {
- _texture_AVPro = (Texture2D)Resources.Load("Textures/AVProVideo-NullPlayer-Frame0");
- _texture_AVPro1 = (Texture2D)Resources.Load("Textures/AVProVideo-NullPlayer-Frame1");
- if( _texture_AVPro )
- {
- _Width = _texture_AVPro.width;
- _height = _texture_AVPro.height;
- }
- _texture = _texture_AVPro;
- _fakeFlipTime = 0.0f;
- _frameCount = 0;
- return true;
- }
- /// <inheritdoc/>
- public override void CloseMedia()
- {
- _frameCount = 0;
- Resources.UnloadAsset(_texture_AVPro);
- Resources.UnloadAsset(_texture_AVPro1);
- base.CloseMedia();
- }
- /// <inheritdoc/>
- public override void SetLooping( bool bLooping )
- {
- _bLoop = bLooping;
- }
- /// <inheritdoc/>
- public override bool IsLooping()
- {
- return _bLoop;
- }
- /// <inheritdoc/>
- public override bool HasMetaData()
- {
- return true;
- }
- /// <inheritdoc/>
- public override bool CanPlay()
- {
- return true;
- }
- /// <inheritdoc/>
- public override bool HasAudio()
- {
- return false;
- }
- /// <inheritdoc/>
- public override bool HasVideo()
- {
- return false;
- }
- /// <inheritdoc/>
- public override void Play()
- {
- _isPlaying = true;
- _isPaused = false;
- _fakeFlipTime = 0.0f;
- }
- /// <inheritdoc/>
- public override void Pause()
- {
- _isPlaying = false;
- _isPaused = true;
- }
- /// <inheritdoc/>
- public override void Stop()
- {
- _isPlaying = false;
- _isPaused = false;
- }
- /// <inheritdoc/>
- public override bool IsSeeking()
- {
- return false;
- }
- /// <inheritdoc/>
- public override bool IsPlaying()
- {
- return _isPlaying;
- }
- /// <inheritdoc/>
- public override bool IsPaused()
- {
- return _isPaused;
- }
- /// <inheritdoc/>
- public override bool IsFinished()
- {
- return _isPlaying && (_currentTime >= GetDuration());
- }
- /// <inheritdoc/>
- public override bool IsBuffering()
- {
- return false;
- }
- /// <inheritdoc/>
- public override double GetDuration()
- {
- return 10.0;
- }
- /// <inheritdoc/>
- public override int GetVideoWidth()
- {
- return _Width;
- }
- /// <inheritdoc/>
- public override int GetVideoHeight()
- {
- return _height;
- }
- /// <inheritdoc/>
- public override float GetVideoDisplayRate()
- {
- return FrameRate;
- }
- /// <inheritdoc/>
- public override Texture GetTexture( int index )
- {
- // return _texture ? _texture : Texture2D.whiteTexture;
- return _texture;
- }
- /// <inheritdoc/>
- public override int GetTextureFrameCount()
- {
- return _frameCount;
- }
- internal override StereoPacking InternalGetTextureStereoPacking()
- {
- return StereoPacking.Unknown;
- }
- /// <inheritdoc/>
- public override bool RequiresVerticalFlip()
- {
- return false;
- }
- /// <inheritdoc/>
- public override void Seek(double time)
- {
- _currentTime = time;
- }
- /// <inheritdoc/>
- public override void SeekFast(double time)
- {
- _currentTime = time;
- }
- /// <inheritdoc/>
- public override double GetCurrentTime()
- {
- return _currentTime;
- }
- /// <inheritdoc/>
- public override void SetPlaybackRate(float rate)
- {
- _playbackRate = rate;
- }
- /// <inheritdoc/>
- public override float GetPlaybackRate()
- {
- return _playbackRate;
- }
- /// <inheritdoc/>
- public override void MuteAudio(bool bMuted)
- {
- // _audioMuted = bMuted;
- }
- /// <inheritdoc/>
- public override bool IsMuted()
- {
- return true;
- }
- /// <inheritdoc/>
- public override void SetVolume(float volume)
- {
- _volume = volume;
- }
- /// <inheritdoc/>
- public override float GetVolume()
- {
- return _volume;
- }
- /// <inheritdoc/>
- public override float GetVideoFrameRate()
- {
- return 0.0f;
- }
- /// <inheritdoc/>
- public override void Update()
- {
- UpdateSubtitles();
- if (_isPlaying)
- {
- _currentTime += Time.deltaTime;
- if (_currentTime >= GetDuration())
- {
- _currentTime = GetDuration();
- if( _bLoop )
- {
- Rewind();
- }
- }
- //
- _fakeFlipTime += Time.deltaTime;
- if( _fakeFlipTime >= (1.0 / FrameRate))
- {
- _fakeFlipTime = 0.0f;
- _texture = ( _texture == _texture_AVPro ) ? _texture_AVPro1 : _texture_AVPro;
- _frameCount++;
- }
- }
- }
- /// <inheritdoc/>
- public override void Render()
- {
- }
- /// <inheritdoc/>
- public override void Dispose()
- {
- }
- }
- public sealed partial class NullMediaPlayer : BaseMediaPlayer
- {
- internal override bool InternalSetActiveTrack(TrackType trackType, int trackUid)
- {
- // Set the active text track using the unique identifier
- // Or disable all text tracks if < 0
- return false;
- }
- internal override bool InternalIsChangedTracks(TrackType trackType)
- {
- // Has the tracks changed since the last frame 'tick'
- return false;
- }
- internal override int InternalGetTrackCount(TrackType trackType)
- {
- // Return number of text tracks
- return 0;
- }
- internal override TrackBase InternalGetTrackInfo(TrackType trackType, int index, ref bool isActiveTrack)
- {
- // Get information about the specific track at index, range is [0...InternalGetTextTrackCount)
- return null;
- }
- internal override bool InternalIsChangedTextCue()
- {
- // Has the text cue changed since the last frame 'tick'
- return false;
- }
- internal override string InternalGetCurrentTextCue()
- {
- return null;
- }
- }
- }
|