參考的地方已經寫明了兩種方式播放視頻,這里采用MovieTexture的方式播放。
首先得安裝好QuickTime Player
Unity支持的播放視頻格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf
在安裝好QuickTime后,將視頻拉進Assets中,稍等即可顯示出來,如果是白色的,那么quicktime沒安裝成功,或者重啟后再試。
創建movie播放Script,
using UnityEngine; using System.Collections; public class Test: MonoBehaviour { //電影紋理 public MovieTexture movTexture; void Start() { //設置電影紋理播放模式為循環 movTexture.loop = true; } void OnGUI() { //繪制電影紋理 GUI.DrawTexture (new Rect (0,0, Screen.width, Screen.height),movTexture,ScaleMode.StretchToFill); if(GUILayout.Button("播放/繼續")) { //播放/繼續播放視頻 if(!movTexture.isPlaying) { movTexture.Play(); } } if(GUILayout.Button("暫停播放")) { //暫停播放 movTexture.Pause(); } if(GUILayout.Button("停止播放")) { //停止播放 movTexture.Stop(); } } }
這里申明了public MovieTexture movTexture;之后,將這個腳本綁定到Main Camera上后,即出現如下圖
這里是選擇綁定的視頻。現在可以在PC上播放了。
移動平經測試
以上的方式在IOS和Android設備中是無法播放視頻的,在移動設備上我們需要使用另外一種方式來播放。台上播放視頻
using UnityEngine; using System.Collections; public class Test : MonoBehaviour { void OnGUI() { if (GUI.Button (new Rect (20,10,200,50), "PLAY ControlMode.CancelOnTouch")) { Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.CancelOnInput); } if (GUI.Button (new Rect (20,90,200,25), "PLAY ControlMode.Full")) { Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.Full); } if (GUI.Button (new Rect (20,170,200,25), "PLAY ControlMode.Hidden")) { Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.Hidden); } if (GUI.Button (new Rect (20,250,200,25), "PLAY ControlMode.Minimal")) { Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.Minimal); } } }
1.視頻播放時觸摸屏幕視頻關閉
2.視頻播放時彈出IOS高級控件,控制視頻暫停播放 全屏等等。
3.視頻播放時無法停止,當其播放完一次后自動關閉
4.視頻播放時彈出IOS高級控件,可控制播放進度。