Unity真机非全屏播放视频
转载注明出处:点击打开链接
刚开始工作就遇到了一个麻烦的问题,在Android及ios设备上实现视频的非全屏播放。
在Unity的原生技术中,可以使用MovieTexture实现PC上的该功能,但是在Android和ios中不支持
MovieTexture,使用MovieTexture将无法编译。而在Android和ios中可以使用
Handheld.PlayFullScreenMovie("test.mp4",Color.black,FullScreenMovieControlMode.CancelOnInput);
方法实现视频的全屏播放,这里就不再多说,详情请参见:http://www.xuanyusong.com/archives/1019
现在我们要做的是在移动设备中实现视频的非全屏播放。当点击Plane是播放视频,再次点击将暂停播放。
首先我们要下载一个名为MobileMovieTexture的插件,
地址为http://url.cn/5CO81sA 密码xHSpQt
将该插件导入工程,即有如下
新建一个材质球,我们起名为MovieMat,将该材质球的Shader改为Color Space—>YCrCbtoRGB
将该材质赋予你想要播放视频的物体上,我将其赋予新建的Plane上。
将插件中的MobileMovieTexture脚本拖放到Plane中。
脚本内容如下:
Path:是视频的存放路径,视频必须放在StreamingAssets下,如下,StreamingAssets/abc.ogg,在Path中只
Movie Material:将刚才建立的材质球拖入
Play Automatically:是否自动播放
Loop:是否循环播放
现在直接运行工程就视频就直接播放了。
下面我们要实现视频的点击控制。
建立脚本MovieCtrl.cs
代码如下
using UnityEngine;
using System.Collections;
public class MovieCtrl : MonoBehaviour
{
MobileMovieTexture movietexture;
void Start ()
{
movietexture=GetComponent();
}
void OnMouseDown()
{
if (movietexture.isPlaying)
{
movietexture.pause = true;
}
else
{
if (movietexture.pause)
{
movietexture.pause = false;
}
else
{
movietexture.Play();
}
}
}
}
将Play Automatically的对勾去掉。
注意事项:1)该方法只能试用于ogg格式的视频文件,其它类型的视频文件可通过转码工具转码,
这里提供一工具,http://download.****.net/download/zhoujiang1015/3703647
亲测Mp4格式可用。
2)与pc的movieTexture一样,不能播放声音,需要单独试用audio source播放。
若出现转码后视频中的声音文件无法播放问题,可以使用视频转码工具(如魔影工厂)单独
将视频文件转换成Mp3文件,用于视频播放。
3) 同样需要QuickTime。