Unity实现Android端视频播放
本文只讲Android短的视频播放
实现方式
使用Handheld.PlayFullScreenMovie(),这个函数实现。具体如下:
1.创建StreamingAssets文件夹,此文件夹放入视频资源(.mp4),如图:
2.创建测试UI(在这里我创建了些Button,分别点击播放鸽各自视频),如图:
3.具体代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
using System;
/// <summary>
/// Android端播放视频
/// </summary>
public class PlayVideo : MonoBehaviour {
public Button FlexBtn;//菜单栏伸缩按钮(控制菜单栏的伸缩)
public Button[] BtnList;//所管理的各个视频的播放按钮
public Transform VBtnMgr;//按钮的父物体
void Start () {
VBtnMgr.transform.localScale = new Vector3(,,);//初始化菜单栏状态(隐藏状态)
//给按钮动态添加点击事件
for (int i = ; i < BtnList.Length; i++)
{
switch (i)
{
case :
BtnList[i].onClick.AddListener(()=> { OnClickBtn(); });
break;
case :
BtnList[i].onClick.AddListener(() => { OnClickBtn(); });
break;
case :
BtnList[i].onClick.AddListener(() => { OnClickBtn(); });
break;
case :
BtnList[i].onClick.AddListener(() => { OnClickBtn(); });
break;
case :
BtnList[i].onClick.AddListener(() => { OnClickBtn(); });
break;
default:
break;
}
}
}
//控制菜单栏按钮点击事件
bool isOpen = true;//伸缩开关
public void OnClickFlexBtn()
{
SetMenuState(isOpen);
isOpen = !isOpen;
}
//菜单栏伸缩控制
public void SetMenuState(bool isC)
{
int target = ;
if (isC)
{
target = ;
}
VBtnMgr.transform.DOScale(target, 0.5f);
}
//各个视频按钮的触发事件
public void OnClickBtn(int index)
{
switch (index)
{
case :
Debug.Log("Cat");
Handheld.PlayFullScreenMovie("CAT.mp4", Color.black, FullScreenMovieControlMode.Full);//播放名为CAT的视频
break;
case :
Debug.Log("WW");
Handheld.PlayFullScreenMovie("WW.mp4", Color.black, FullScreenMovieControlMode.Full);
break;
case :
Debug.Log("WD");
Handheld.PlayFullScreenMovie("WD.mp4", Color.black, FullScreenMovieControlMode.Full);
break;
case :
Debug.Log("WTWO");
Handheld.PlayFullScreenMovie("WWW.mp4", Color.black, FullScreenMovieControlMode.Full);
break;
case :
Debug.Log("TEXT");
Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.Full);
break;
default:
break;
}
}
//退出按钮
public void OnclickExitBtn()
{
Application.Quit();
}
}
完成以上,打包发布即可实现。
注意:在这里我只向大家展示播放视频功能,至于文件夹StreamingAssets打包后产生的占用内存问题我并没有处理,此文件夹会将其中所有资源全部打包,所以在开发中不建议将文件放在此文件夹
最后欢迎并渴望指正交流
Unity实现Android端视频播放的更多相关文章
- Unity调用Android的两个方式:其一、调用jar包
unity在Android端开发的时候,免不了要调用Java:Unity可以通过两种方式来调用Android:一是调用jar.二是调用aar. 这篇文章主要讲解怎么从无到有的生成一个jar包,然后un ...
- Unity调用Android的两种方式:其一、调用jar包
unity在Android端开发的时候,免不了要调用Java:Unity可以通过两种方式来调用Android:一是调用jar.二是调用aar. 这篇文章主要讲解怎么从无到有的生成一个jar包,然后un ...
- Unity 与 Android 互调用
https://www.jianshu.com/p/b5e3cfcdf081 Unity 项目中一些需要访问安卓操作系统的功能,比如获取电量,wifi 状态等,需要 Unity 启动安卓系统的 Bro ...
- Unity和Android交互学习
这段时间学习Unity和Android互调,从基础开始. 网上的教程有很多,浏览了一圈教程,发现目前有两种方式:一种是直接把 .aar文件导入Unity/Plugins/Android文件夹,另一种是 ...
- Unity响应Android的返回键,退出当前Activity
一:使用 Application.Quit() public void Update() { if(Input.GetKeyDown(KeyCode.Escape)) Application.Quit ...
- unity 与 android 协调工作 注意事项
原地址:http://blog.csdn.net/u012085988/article/details/17436191 1.unity调android函数 AndroidJavaClass jc = ...
- Android端IM应用中的@人功能实现:仿微博、QQ、微信,零入侵、高可扩展
本文由“猫爸iYao”原创分享,感谢作者. 1.引言 最近有个需求:评论@人(没错,就是IM聊天或者微博APP里的@人功能),就像下图这样: ▲ 微信群聊界面里的@人功能 ▲ QQ群聊界面里 ...
- Unity和Android混合开发
通用的流程 https://blog.csdn.net/zhangdi2017/article/details/65629589 应用场景 Unity游戏中一些功能需要安卓系统的支持,如搜索wifi等 ...
- unity调用Android百度地图
由于个人是Android小白,在这个配置上面被折磨了很久,因此写下这篇文章 工具:eclipse + unity5.6.1 首先去百度地图开发者平台下载你需要的资源,我只需要显示地图和定位,这个时候你 ...
随机推荐
- 【mac】配置sublime开发C
1.sublime text3,Tools/Build System/New Build system创建一个新配置文件. {"cmd": ["gcc", &q ...
- 4、APP FPS测试
什么是FPS FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数.FPS是测量用于保存.显示动态视频的信息数量.每秒钟帧数愈多,所显示的动作就会愈流畅.通常,要避免动作不 ...
- 关于Unity中文件读取
存储: 在程序发布后文件的存放有两种,第一种是打包到Uniyt的资源包中(*.unity3D),第二种就是把文件存放在一个特殊的目录如:StreamingAssets,这个目录的东西Unity不会打包 ...
- Linux用户空间内存区域的匿名映射
1 在调用mmap系统调用时,可以指定的标志(flag)参数: 1: #define MAP_SHARED 0x01 /* Share changes */ 2: #define MAP_PRIVAT ...
- Java【并发】面试题
精尽 Java[并发]面试题 以下面试题,基于网络整理,和自己编辑.具体参考的文章,会在文末给出所有的链接. 如果胖友有自己的疑问,欢迎在星球提问,我们一起整理吊吊的 Java[并发]面试题的大保健. ...
- JAR API
JAR API包括使用 manifest 文件的类.Manifest类的一个对象表示一个manifest文件. 在代码中创建一个Manifest对象,如下所示: 1 Manifest manifest ...
- JUC源码分析-集合篇(七)PriorityBlockingQueue
JUC源码分析-集合篇(七)PriorityBlockingQueue PriorityBlockingQueue 是带优先级的无界阻塞队列,每次出队都返回优先级最高的元素,是二叉树最小堆的实现. P ...
- java 8 bug
jpa保存实体的时候,不能用{{}}初始化对象,否则会报异常 org.springframework.dao.InvalidDataAccessApiUsageException: Unknown e ...
- <随便写>数据库调优的几种方式
1.创建索引 要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引 在经常需要进行检索的字段上创建索引,比如要按照表字段username进行检索,那么就应该在姓名字段 ...
- [USACO06JAN]牛的舞会The Cow Prom
题目描述 The N (2 <= N <= 10,000) cows are so excited: it's prom night! They are dressed in their ...