参考的地方已经写明了两种方式播放视频,这里采用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高级控件,可控制播放进度。
Unity3D MovieTexture 视频播放
时间: 2024-10-08 02:16:36