视频播放以及Android发布

一、视频播放

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).


视频播放以及Android发布_第1张图片
Paste_Image.png

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


视频播放以及Android发布_第2张图片
Paste_Image.png
那么我们如何将视频放入到一个游戏对象上呢?我们先创建一个平面游戏对象在摄像机上创建一个脚本,然后我们写入脚本.
    public GameObject obj;
    public MovieTexture Moviel;
    void Start ()
    {
        obj.GetComponent().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(平面)和视频纹理赋值,最后来看看效果,点击播放效果还是不错的.


视频播放以及Android发布_第3张图片
Paste_Image.png
2、Unity标准的视频播放接口-Handheld 掌型

首先在U3D中创建空文件夹并命名为StreamingAssets,将视频文件放置在Assets/StreamingAssets/路径下


视频播放以及Android发布_第4张图片
Paste_Image.png
 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);
        }

    }

我们发布到安卓手机上运行下。


视频播放以及Android发布_第5张图片
2C122763C9AE6BB8D378D5E5B951046D.jpg
视频播放以及Android发布_第6张图片
5D757EF0B21AFA251943284E22D56F0D.jpg

二、安卓的发布

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

视频播放以及Android发布_第7张图片
Paste_Image.png

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

视频播放以及Android发布_第8张图片
Paste_Image.png
注意:必须先安装了JDK再来部署SDK
Paste_Image.png
下载后直接安装JDK,安装好后然后我们部署JDK的环境变量,选择我的电脑属性——高级选项——环境变量
视频播放以及Android发布_第9张图片
Paste_Image.png

视频播放以及Android发布_第10张图片
Paste_Image.png
部署好JDK的环境变量后开始安装SDK,打开SDK Manager,然后安装相应的SDK。
视频播放以及Android发布_第11张图片
Paste_Image.png
如果没有出现相应的版本那就需要镜像: http://www.androiddevtools.cn/
视频播放以及Android发布_第12张图片
Paste_Image.png

视频播放以及Android发布_第13张图片
Paste_Image.png
下载完相应的SDK后开始部署SDK的环境变量。环境变量部署如下
视频播放以及Android发布_第14张图片
Paste_Image.png
部署完后我们进入U3D中选择File--Build settings...
视频播放以及Android发布_第15张图片
Paste_Image.png
下载安卓设置后直接安装。
Paste_Image.png

这时候我们就能够Switch platform(转换平台)了,转换后我们就要将SDK和JDK的文件位置导入U3D中了选择
视频播放以及Android发布_第16张图片
Paste_Image.png
做好这些后我看开始设置安卓的配置。设置如下:
视频播放以及Android发布_第17张图片
Paste_Image.png

视频播放以及Android发布_第18张图片
Paste_Image.png

设置好这些后可以直接点击Build发布我们安卓机的项目了.
视频播放以及Android发布_第19张图片
Paste_Image.png

你可能感兴趣的:(视频播放以及Android发布)