一、视频播放
Unity自带了两种播放API
(1) MovieTexture(视频纹理)
优点:简单,高效的快速完成播放
缺点:此种方法无法应用于移动端。movietexture只能播放OGG和OVG格式的。
(2)Handheld
缺点:
可操作性非常差,几乎达不到我们想要的结果,而且也仅支持全屏的普通视频的播放。
注意点:
将视频文件放置在Assets/StreamingAssets/路径下,经测试.MP4可用。
(3)视频播放插件
第三方插件:进行播放
GitHub有大量的视频播放插件,自己去搜索.
EasyMovieTexture
MobileMovieTexture
MobilePlayer
Mobile movie texture for android :利用开源视频编解码库Theora进行视频解码,然后通过Unity Texture实现显示
Unity标准接口,支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。仅支持PC端的本地视频播放。
官方文档给出的方式是将需要视频放在Quickime上播放一遍,其实本质就是将.mp4 , .mov 等视频格式转成.ogv,Unity才能直接识别,可以使用格式转化工具Theora Converter .NET、ffmpeg等直接将视频转成.ogv.
1、MovieTexture(视频纹理)
首先我们先来看下第一中视频播放的API(MovieTexture(视频纹理))我们先把一个视频转换成ogv的格式。转换格式的软件(Theora Converter .NET).

转换后直接将ogv格式导入u3D中就好可以在u3D中播放了.

public GameObject obj;
public MovieTexture Moviel;
void Start ()
{
obj.GetComponent<Renderer>().material.mainTexture = Moviel;
//设置视频播放模式为循环
Moviel.loop = true;
}
void OnGUI()
{
if (GUILayout.Button("播放/继续"))
{
if (!Moviel.isPlaying)
{
Moviel.Play();
}
}
if (GUILayout.Button("暂停播放"))
{
Moviel.Pause();
}
if (GUILayout.Button("停止播放"))
{
Moviel.Stop();
}
最后再将Plan(平面)和视频纹理赋值,最后来看看效果,点击播放效果还是不错的.

2、Unity标准的视频播放接口-Handheld 掌型
首先在U3D中创建空文件夹并命名为StreamingAssets,将视频文件放置在Assets/StreamingAssets/路径下

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);
}
}
我们发布到安卓手机上运行下。


二、安卓的发布
首先部署安卓环境,安装SDK和JDK。
下载Jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

下载SDK: http://tools.android-studio.org/index.php/sdk/










这时候我们就能够Switch platform(转换平台)了,转换后我们就要将SDK和JDK的文件位置导入U3D中了选择



设置好这些后可以直接点击Build发布我们安卓机的项目了.

网友评论