Unity控制視頻播放、暫停、上下選擇
本文提供詳細教程 記錄遇到的難點並幫助同行的朋友們 堅持以最簡單的方法傳授和把更好的閱讀體驗帶給你們! |
一:效果預覽
二:實現
1;在Unity創建空的場景
1,在空的場景裏創建RawImage,並在此基礎上添加VideoPlayer組件
2;在RawImage下創建3個按鈕
1,標清所起的作用,並把位置設置好
3;拖進幾個視頻素材
這裏我找的素材比較多,5個了
三:腳本
1;創建腳本
2;編寫代碼
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;
/// <summary>
/// Jerry代碼編寫
/// </summary>
public class VideoController : MonoBehaviour
{
//設置VideoPlayer、RawImage和當前播放視頻索引參數
private VideoPlayer videoPlayer;
private RawImage rawImage;
private int currentClipIndex;
//設置相關文本和按鈕參數以及視頻列表
public Text text_PlayOrPause;
public Button button_PlayOrPause;
public Button button_Pre;
public Button button_Next;
public VideoClip[] videoClips;
void Start()
{
//獲取VideoPlayer和RawImage組件,以及初始化當前視頻索引
videoPlayer = this.GetComponent<VideoPlayer>();
rawImage = this.GetComponent<RawImage>();
currentClipIndex = 0;
//設置相關按鈕監聽事件
button_PlayOrPause.onClick.AddListener(OnPlayOrPauseVideo);
button_Pre.onClick.AddListener(OnPreVideo);
button_Next.onClick.AddListener(OnNextVideo);
}
// Update is called once per frame
void Update()
{
//沒有視頻則返回,不播放
if (videoPlayer.texture == null)
{
return;
}
//渲染視頻到UGUI上
rawImage.texture = videoPlayer.texture;
}
/// <summary>
/// 播放和暫停當前視頻
/// </summary>
private void OnPlayOrPauseVideo()
{
//判斷視頻播放情況,播放則暫停,暫停就播放,並更新相關文本
if (videoPlayer.isPlaying == true)
{
videoPlayer.Pause();
text_PlayOrPause.text = "播放";
}
else
{
videoPlayer.Play();
text_PlayOrPause.text = "暫停";
}
}
/// <summary>
/// 切換上一個視頻
/// </summary>
private void OnPreVideo()
{
//視頻列表減一播放上一個視頻,並進行避免越界操作
currentClipIndex -= 1;
if (currentClipIndex < 0)
{
currentClipIndex = videoClips.Length - 1;
}
videoPlayer.clip = videoClips[currentClipIndex];
text_PlayOrPause.text = "暫停";
}
/// <summary>
/// 切換下一個視頻
/// </summary>
private void OnNextVideo()
{
//視頻列表加一播放下一個視頻,並進行避免越界操作
currentClipIndex += 1;
currentClipIndex = currentClipIndex % videoClips.Length;
videoPlayer.clip = videoClips[currentClipIndex];
text_PlayOrPause.text = "暫停";
}
}
3;代碼預覽
4;腳本掛載
5;變量賦值
四:結束,開始運行
擁有自己的服務器 讓開發工作不再難 |
點擊此處領取----阿里產品優惠券大禮包 (新手必得享超值優惠)