大家好,我是秦元培,歡迎大家關注我的博客,我的博客地址是blog.csdn.net/qinyuanpei。
今天我們來做一個在Unity3D中實現視頻播放的實例。首先,Unity支持的播放視頻格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。我們只需要將這些文件放在項目文件夾裡就可實現視頻文件的導入。在Window系統下,我們需要在蘋果公司的QuickTime軟件下才能順利地將視頻文件導入Unity。如果視頻文件含有音頻文件,那麼在導入Unity後會生成相應的音頻文件。在Unity3D中實現視頻播放的方法有兩種:基於紋理貼圖、基於GUI。我們下面分別來講解:
1、基於紋理貼圖
view plaincopyprint?
- using UnityEngine;
- using System.Collections;
-
- public class MovieByTexture : MonoBehaviour {
-
- //電影紋理貼圖
- public MovieTexture mMovie;
- //電影音頻源
- private AudioSource mAudio;
-
- //媒體信息定義
- private string mediaName;//媒體名稱
- private string mediaLength;//媒體長度
-
- void Start ()
- {
- mAudio=GetComponent<AudioSource>();
- //設置當前對象的主紋理為電影紋理貼圖
- renderer.material.mainTexture=mMovie;
- //設置電影紋理播放模式為循環
- mMovie.loop=true;
- //開始播放電影
- mMovie.Play();
- //開始播放音樂
- mAudio.Play();
- }
-
- void Update ()
- {
- //在這裡更新媒體信息
- mediaName=mMovie.name;
- mediaLength=mMovie.duration.ToString();
- }
-
- void OnGUI()
- {
- //播放控制
- if(GUILayout.Button("播放",GUILayout.Height(30)))
- {
- mMovie.Play();
- mAudio.Play();
- }
- //暫停控制
- if(GUILayout.Button("暫停",GUILayout.Height(30)))
- {
- mMovie.Pause();
- mAudio.Pause();
- }
- //停止控制
- if(GUILayout.Button("停止",GUILayout.Height(30)))
- {
- mMovie.Stop();
- mAudio.Stop();
- }
-
- //繪制文本信息
- GUILayout.Label("媒體名稱:"+mediaName,GUILayout.Height(30));
- GUILayout.Label("媒體長度:"+mediaLength,GUILayout.Height(30)); ;
- }
- }
2、基於GUI
[csharp] view plaincopyprint?
- using UnityEngine;
- using System.Collections;
-
- public class MovieByGUI : MonoBehaviour {
-
- //電影紋理貼圖
- public MovieTexture mMovie;
- //電影音頻源
- private AudioSource mAudio;
-
- //媒體信息定義
- private string mediaName;//媒體名稱
- private string mediaLength;//媒體長度
-
- void Start ()
- {
- mAudio=GetComponent<AudioSource>();
- //設置當前對象的主紋理為電影紋理貼圖
- renderer.material.mainTexture=mMovie;
- //設置電影紋理播放模式為循環
- mMovie.loop=true;
- //開始播放電影
- mMovie.Play();
- //開始播放音樂
- mAudio.Play();
- }
-
- void Update ()
- {
- //在這裡更新媒體信息
- mediaName=mMovie.name;
- mediaLength=mMovie.duration.ToString();
- }
-
- void OnGUI()
- {
- //繪制電影紋理貼圖
- GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),mMovie);
- //播放控制
- if(GUILayout.Button("播放",GUILayout.Height(30)))
- {
- mMovie.Play();
- mAudio.Play();
- }
- //暫停控制
- if(GUILayout.Button("暫停",GUILayout.Height(30)))
- {
- mMovie.Pause();
- mAudio.Pause();
- }
- //停止控制
- if(GUILayout.Button("停止",GUILayout.Height(30)))
- {
- mMovie.Stop();
- mAudio.Stop();
- }
-
- //繪制文本信息
- GUILayout.Label("媒體名稱:"+mediaName,GUILayout.Height(30));
- GUILayout.Label("媒體長度:"+mediaLength,GUILayout.Height(30)); ;
- }
- }
代碼十分簡單,這裡不再贅述了。我們可以直接在場景中創建一個Plane,然後將腳本拖放到該對象上,再指定了音頻文件、視頻文件後就可以實現視頻的播放了。最終效果如圖所示:
今天的內容就是這樣了,最近不知道該寫點什麼了,大家想了解什麼內容的話,可以給我留言啊。
喜歡我的博客請記住我的名字:秦元培,我的博客地址是:blog.csdn.net/qinyuanpei
轉載請注明出處,本文作者:秦元培,本文出處:http://blog.csdn.net/qinyuanpei/article/details/24130347