123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318 |
- using System;
- using UnityEngine;
- //-----------------------------------------------------------------------------
- // Copyright 2015-2020 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 class NullMediaPlayer : BaseMediaPlayer
- {
- private bool _isPlaying = false;
- private bool _isPaused = false;
- private float _currentTime = 0.0f;
- // 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;
- public override string GetVersion()
- {
- return "0.0.0";
- }
- public override bool OpenVideoFromFile(string path, long offset, string httpHeaderJson, uint sourceSamplerate = 0, uint sourceChannels = 0, int forceFileFormat = 0)
- {
- _texture_AVPro = (Texture2D)Resources.Load("AVPro");
- _texture_AVPro1 = (Texture2D)Resources.Load("AVPro1");
- if (_texture_AVPro)
- {
- _Width = _texture_AVPro.width;
- _height = _texture_AVPro.height;
- }
- _texture = _texture_AVPro;
- _fakeFlipTime = 0.0f;
- _frameCount = 0;
- return true;
- }
- public override void CloseVideo()
- {
- _frameCount = 0;
- Resources.UnloadAsset(_texture_AVPro);
- Resources.UnloadAsset(_texture_AVPro1);
- base.CloseVideo();
- }
- public override void SetLooping(bool bLooping)
- {
- _bLoop = bLooping;
- }
- public override bool IsLooping()
- {
- return _bLoop;
- }
- public override bool HasMetaData()
- {
- return true;
- }
- public override bool CanPlay()
- {
- return true;
- }
- public override bool HasAudio()
- {
- return false;
- }
- public override bool HasVideo()
- {
- return false;
- }
- public override void Play()
- {
- _isPlaying = true;
- _isPaused = false;
- _fakeFlipTime = 0.0f;
- }
- public override void Pause()
- {
- _isPlaying = false;
- _isPaused = true;
- }
- public override void Stop()
- {
- _isPlaying = false;
- _isPaused = false;
- }
- public override bool IsSeeking()
- {
- return false;
- }
- public override bool IsPlaying()
- {
- return _isPlaying;
- }
- public override bool IsPaused()
- {
- return _isPaused;
- }
- public override bool IsFinished()
- {
- return _isPlaying && (_currentTime >= GetDurationMs());
- }
- public override bool IsBuffering()
- {
- return false;
- }
- public override float GetDurationMs()
- {
- return 10.0f * 1000.0f;
- }
- public override int GetVideoWidth()
- {
- return _Width;
- }
- public override int GetVideoHeight()
- {
- return _height;
- }
- public override float GetVideoDisplayRate()
- {
- return FrameRate;
- }
- public override Texture GetTexture(int index)
- {
- // return _texture ? _texture : Texture2D.whiteTexture;
- return _texture;
- }
- public override int GetTextureFrameCount()
- {
- return _frameCount;
- }
- public override bool RequiresVerticalFlip()
- {
- return false;
- }
- public override void Seek(float timeMs)
- {
- _currentTime = timeMs;
- }
- public override void SeekFast(float timeMs)
- {
- _currentTime = timeMs;
- }
- public override void SeekWithTolerance(float timeMs, float beforeMs, float afterMs)
- {
- _currentTime = timeMs;
- }
- public override float GetCurrentTimeMs()
- {
- return _currentTime;
- }
- public override void SetPlaybackRate(float rate)
- {
- _playbackRate = rate;
- }
- public override float GetPlaybackRate()
- {
- return _playbackRate;
- }
- public override float GetBufferingProgress()
- {
- return 0f;
- }
- public override void MuteAudio(bool bMuted)
- {
- // _audioMuted = bMuted;
- }
- public override bool IsMuted()
- {
- return true;
- }
- public override void SetVolume(float volume)
- {
- _volume = volume;
- }
- public override float GetVolume()
- {
- return _volume;
- }
- public override int GetAudioTrackCount()
- {
- return 0;
- }
- public override int GetCurrentAudioTrack()
- {
- return 0;
- }
- public override void SetAudioTrack(int index)
- {
- }
- public override int GetVideoTrackCount()
- {
- return 0;
- }
- public override int GetCurrentVideoTrack()
- {
- return 0;
- }
- public override string GetCurrentAudioTrackId()
- {
- // TODO
- return "";
- }
- public override int GetCurrentAudioTrackBitrate()
- {
- // TODO
- return 0;
- }
- public override void SetVideoTrack(int index)
- {
- }
- public override string GetCurrentVideoTrackId()
- {
- return "";
- }
- public override int GetCurrentVideoTrackBitrate()
- {
- return 0;
- }
- public override float GetVideoFrameRate()
- {
- return 0.0f;
- }
- public override void Update()
- {
- UpdateSubtitles();
- if (_isPlaying)
- {
- _currentTime += Time.deltaTime * 1000.0f;
- if (_currentTime >= GetDurationMs())
- {
- _currentTime = GetDurationMs();
- if (_bLoop)
- {
- Rewind();
- }
- }
- //
- _fakeFlipTime += Time.deltaTime;
- if (_fakeFlipTime >= (1.0 / FrameRate))
- {
- _fakeFlipTime = 0.0f;
- _texture = (_texture == _texture_AVPro) ? _texture_AVPro1 : _texture_AVPro;
- _frameCount++;
- }
- }
- }
- public override void Render()
- {
- }
- public override void Dispose()
- {
- }
- }
- }
|