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