Unity Media Player視頻播放完畢的判斷方法


  1. MetaDataReady:視頻數據准備完成
  2.  
    ReadyToPlay:視頻加載完成,准備播放
  3.  
    Started:視頻開始播放
  4.  
    FirstFrameReady:第一幀渲染完成
  5.  
    FinishedPlaying:非循環播放的視頻播放完畢

 

 mp.Events.AddListener(OnMediaPlayerEvent);

void OnMediaPlayerEvent(MediaPlayer mp, MediaPlayerEvent.EventType et, ErrorCode errorCode)
{
switch (et)
{
case MediaPlayerEvent.EventType.Started:
//OnMediaPlayerStarted(mp);
break;
case MediaPlayerEvent.EventType.FinishedPlaying:

arg0.Rewind(false);
arg0.Play();
arg0.OpenVideoFromFile(MediaPlayer.FileLocation.RelativeToDataFolder, "Video/交通1.mp4");
arg0.m_Loop = true;

break;
}
}

 

player.OpenVideoFromFile(MediaPlayer.FileLocation.AbsolutePathOrURL, "file://" + @"d:/Pro/項目資料/悅俊府/J_.RGB_color.mov");

public MediaPlayer  _mediaPlayer;
    // 播放
    public void OnPlayButton()
    {
        if( _mediaPlayer )
        {
            _mediaPlayer.Control.Play();
        }
    }
    // 暫停
    public void OnPauseButton()
    {
        if( _mediaPlayer )
        {
            _mediaPlayer.Control.Pause();
        }
    }
    // 重播
    public void OnRewindButton()
    {
        if( _mediaPlayer )
        {
            _mediaPlayer.Control.Rewind();
        }
    }
    // 調節音量
    public void OnAudioVolumeSlider()
    {
        if (_mediaPlayer && _audioVolumeSlider && _audioVolumeSlider.value != _setAudioVolumeSliderValue)
        {
            _mediaPlayer.Control.SetVolume(_audioVolumeSlider.value);
        }
    }
    // 靜音
    public void OnMuteChange()
    {
        if (_mediaPlayer)
        {
            _mediaPlayer.Control.MuteAudio(_MuteToggle.isOn);
        }
    }
    // 拖動進度
    public void OnVideoSeekSlider()
    {
        if (_mediaPlayer && _videoSeekSlider && _videoSeekSlider.value != _setVideoSeekSliderValue)
        {
            _mediaPlayer.Control.Seek(_videoSeekSlider.value * _mediaPlayer.Info.GetDurationMs());
        }
    }

 視頻與進度條結合

private void Update()
    {
        
        if (_MediaPlayer && _MediaPlayer.Info != null && _MediaPlayer.Info.GetDurationMs() > 0f)
        {
            MediaCurrentTimer();
        }
    }
    public IEnumerator GetTotalTimer()
    {
        yield return new WaitForSeconds(0.1f);
        float totalTimer = _MediaPlayer.Info.GetDurationMs() * 0.001f;
        totalHours = (int)totalTimer / 3600;
        totalMinutes = (int)(totalTimer - totalHours * 3600) / 60;
        totalSeconds = (int)(totalTimer - totalHours * 3600 - totalMinutes * 60);
        TotalTimer.text = string.Format("{0:D2}:{1:d2}:{2:D2}", totalHours, totalMinutes, totalSeconds);
    }
    public void MediaCurrentTimer()
    {
        float currentTimer = _MediaPlayer.Control.GetCurrentTimeMs() * 0.001f;
        currentHours = (int)currentTimer / 3600;
        currentMinutes = (int)(currentTimer - currentHours * 3600) / 60;
        currentSeconds = (int)(currentTimer - currentHours * 3600 - currentMinutes * 60);
        CurrentTimer.text = string.Format("{0:D2}:{1:D2}:{2:D2}", currentHours, currentMinutes, currentSeconds);
        slider.value = (_MediaPlayer.Control.GetCurrentTimeMs() * 0.001f) / (_MediaPlayer.Info.GetDurationMs() * 0.001f);
    }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM