-
MetaDataReady:视频数据准备完成
-
ReadyToPlay:视频加载完成,准备播放
-
Started:视频开始播放
-
FirstFrameReady:第一帧渲染完成
-
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); }