-
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);
}
