zoukankan      html  css  js  c++  java
  • Unity实现Android端视频播放

    本文只讲Android短的视频播放

    实现方式

    使用Handheld.PlayFullScreenMovie(),这个函数实现。具体如下:

    1.创建StreamingAssets文件夹,此文件夹放入视频资源(.mp4),如图:

    2.创建测试UI(在这里我创建了些Button,分别点击播放鸽各自视频),如图:

    3.具体代码:

     1 using System.Collections;
     2 using System.Collections.Generic;
     3 using UnityEngine;
     4 using UnityEngine.UI;
     5 using DG.Tweening;
     6 using System;
     7 /// <summary>
     8 /// Android端播放视频
     9 /// </summary>
    10 public class PlayVideo : MonoBehaviour {
    11     public Button FlexBtn;//菜单栏伸缩按钮(控制菜单栏的伸缩)
    12     public Button[] BtnList;//所管理的各个视频的播放按钮
    13     public Transform VBtnMgr;//按钮的父物体
    14     void Start () {
    15         VBtnMgr.transform.localScale = new Vector3(0,0,1);//初始化菜单栏状态(隐藏状态)
    16         //给按钮动态添加点击事件
    17         for (int i = 0; i < BtnList.Length; i++)
    18         {
    19             switch (i)
    20             {
    21                 case 0:
    22                     BtnList[i].onClick.AddListener(()=> { OnClickBtn(0); });
    23                     break;
    24                 case 1:
    25                     BtnList[i].onClick.AddListener(() => { OnClickBtn(1); });
    26                     break;
    27                 case 2:
    28                     BtnList[i].onClick.AddListener(() => { OnClickBtn(2); });
    29                     break;
    30                 case 3:
    31                     BtnList[i].onClick.AddListener(() => { OnClickBtn(3); });
    32                     break;
    33                 case 4:
    34                     BtnList[i].onClick.AddListener(() => { OnClickBtn(4); });
    35                     break;
    36                 default:
    37                     break;
    38             }
    39         }
    40     }
    41     //控制菜单栏按钮点击事件
    42     bool isOpen = true;//伸缩开关
    43     public void OnClickFlexBtn()
    44     {
    45         SetMenuState(isOpen);
    46         isOpen = !isOpen;
    47     }
    48     //菜单栏伸缩控制
    49     public void SetMenuState(bool isC)
    50     {
    51         int target = 0;
    52         if (isC)
    53         {
    54             target = 1;
    55         }
    56         VBtnMgr.transform.DOScale(target, 0.5f);
    57     }
    58     //各个视频按钮的触发事件
    59     public void OnClickBtn(int index)
    60     {
    61         switch (index)
    62         {
    63             case 0:
    64                 Debug.Log("Cat");
    65                 Handheld.PlayFullScreenMovie("CAT.mp4", Color.black, FullScreenMovieControlMode.Full);//播放名为CAT的视频
    66                 break;
    67             case 1:
    68                 Debug.Log("WW");
    69                 Handheld.PlayFullScreenMovie("WW.mp4", Color.black, FullScreenMovieControlMode.Full);
    70                 break;
    71             case 2:
    72                 Debug.Log("WD");
    73                 Handheld.PlayFullScreenMovie("WD.mp4", Color.black, FullScreenMovieControlMode.Full);
    74                 break;
    75             case 3:
    76                 Debug.Log("WTWO");
    77                 Handheld.PlayFullScreenMovie("WWW.mp4", Color.black, FullScreenMovieControlMode.Full);
    78                 break;
    79             case 4:
    80                 Debug.Log("TEXT");
    81                 Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.Full);
    82                 break;
    83             default:
    84                 break;
    85         }
    86     }
    87     //退出按钮
    88     public void OnclickExitBtn()
    89     {
    90         Application.Quit();
    91     }
    92 }

    完成以上,打包发布即可实现。

    注意:在这里我只向大家展示播放视频功能,至于文件夹StreamingAssets打包后产生的占用内存问题我并没有处理,此文件夹会将其中所有资源全部打包,所以在开发中不建议将文件放在此文件夹

    最后欢迎并渴望指正交流

  • 相关阅读:
    9.过滤器的使用
    8.公共组件
    7.Props向子组件传递数据
    6.组件
    5.指令系统-事件
    4.指令系统
    SpringCloud入门
    springcloud注解
    was unable to refresh its cache! status = Cannot execute request on any known server
    集成第三方框架,报错NoSuchFieldError:logger
  • 原文地址:https://www.cnblogs.com/answer-yj/p/10885637.html
Copyright © 2011-2022 走看看