美文网首页音视频开发经验之路
视频播放以及Android发布

视频播放以及Android发布

作者: _凉笙 | 来源:发表于2017-01-18 21:48 被阅读0次

    一、视频播放

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


    Paste_Image.png

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


    Paste_Image.png 那么我们如何将视频放入到一个游戏对象上呢?我们先创建一个平面游戏对象在摄像机上创建一个脚本,然后我们写入脚本.
        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(平面)和视频纹理赋值,最后来看看效果,点击播放效果还是不错的.


    Paste_Image.png
    2、Unity标准的视频播放接口-Handheld 掌型

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


    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);
            }
    
        }
    

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


    2C122763C9AE6BB8D378D5E5B951046D.jpg 5D757EF0B21AFA251943284E22D56F0D.jpg

    二、安卓的发布

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

    Paste_Image.png
    下载SDK: http://tools.android-studio.org/index.php/sdk/ Paste_Image.png 注意:必须先安装了JDK再来部署SDK
    Paste_Image.png 下载后直接安装JDK,安装好后然后我们部署JDK的环境变量,选择我的电脑属性——高级选项——环境变量
    Paste_Image.png
    Paste_Image.png 部署好JDK的环境变量后开始安装SDK,打开SDK Manager,然后安装相应的SDK。
    Paste_Image.png 如果没有出现相应的版本那就需要镜像: http://www.androiddevtools.cn/
    Paste_Image.png
    Paste_Image.png 下载完相应的SDK后开始部署SDK的环境变量。环境变量部署如下
    Paste_Image.png 部署完后我们进入U3D中选择File--Build settings...
    Paste_Image.png 下载安卓设置后直接安装。
    Paste_Image.png
    这时候我们就能够Switch platform(转换平台)了,转换后我们就要将SDK和JDK的文件位置导入U3D中了选择
    Paste_Image.png 做好这些后我看开始设置安卓的配置。设置如下:
    Paste_Image.png
    Paste_Image.png
    设置好这些后可以直接点击Build发布我们安卓机的项目了.
    Paste_Image.png

    相关文章

      网友评论

        本文标题:视频播放以及Android发布

        本文链接:https://www.haomeiwen.com/subject/thegvttx.html