Unity实现Android端视频播放

Posted answer-yj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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打包后产生的占用内存问题我并没有处理,此文件夹会将其中所有资源全部打包,所以在开发中不建议将文件放在此文件夹

最后欢迎并渴望指正交流

 

以上是关于Unity实现Android端视频播放的主要内容,如果未能解决你的问题,请参考以下文章

Unity播放服务器端视频 发布到Android移动端

UMP(2.0.2) Unity Android端开发

unity视频播放,

当替换片段视频仍在android中播放背景时

移动端播放视频文件

js android端实现视频自动播放