unity AVPro视频播放

1.右键创建MediaPlayer对象 并指定视频文件
MediaPlayer常用组件参数:
Source Path:视频路径
AbsolutePathOrURL:绝对路径
RelativeToDataFolder: 项目的根目录下
RelativeToPersitentDataFolder: 固定路径
RelativeToProjectFolder: 跟Assets同级的路径
RelativeToStreamingAssetsFolder:相对于StreamingAssets文件夹
Auto Open: 自动打开
Auto Start: 开始自动播放
Loop: 循环播放
Playback Rate: 播放速率
Volume:音量
Muted:静音
Subtitles:字幕
Events.AddListener:添加事件

2.在Canvas下添加UI/AVPro VideoUGUI 设置全屏。
将1中的MediaPlayer对象拖拽到Display UGUI中对应的MediaPlayer

3.在3D物体上播放:
1).将1中的MediaPlayer对象添加ApplyToMaterial组件,并指定MediaPlayer对象(自身)到属性Media中
2).新建材质球,设置Shader为AVProVideo/Lit/Diffuse,并赋值给ApplyToMaterial组件中的材质球
3).新建3D物体,将材质球赋值给3D物体

常用API:eg:public MediaPlayer mediaPlayer;
(1) 加载视频:mediaPlayer.OpenVideoFromFile(MediaPlayer.FileLocation.路径,
“视频名称”,是否自动播放(如不写默认为true))
(2) 播放/暂停: mediaPlayer.Control.Play()/Pause();
循环: mediaPlayer.Control.SetLooping(true);
变速:mediaPlayer.Control.SetPlaybackRate(速率);实现倒放让速率为负
(3) 进度条:
相关API:mediaPlayer.Control.GetCurrentTimeMs();//当前播放时间(毫秒)
mediaPlayer.Info.GetDurationMs();//视频总的时间长度
mediaPlayer.Control.Seek(x);//跳到指定的时间节点
滑动条跟随视频时间移动: slider.value=mediaPlayer.Control.GetCurrentTimeMs()/mediaPlayer.Info.GetDurationMs();
控制视频播放的进度:mediaPlayer.Control.Seek
(slider.value+mediaPlayer.Control.GetCurrentTimeMs())
通过EventTrigger组件(UGUI)实现拖拽进度条时视频暂停,松开播放
定义方法:调用播放/暂停 即可。
(4) 视频时间显示:text
已播放的:
毫秒换秒 int currentSeconds=(int)(mediaPlayer.Control.GetCurrentTimeMs()/1000);
当前分钟数:int currentMin=currentSeconds/60;
除去分钟剩下的秒:currentSeconds=currentSeconds%60; 或currentSeconds%=%60;
string currentSecondsStr=currentSeconds<10?“0”+currentSeconds:currentSeconds.ToString();
总的视频:
毫秒换秒 int allSeconds=(int)(mediaPlayer.Info.GetDurationMs()/1000);
总分钟数:int allMin=currentSeconds/60;
除去分钟剩下的秒:allSeconds=allSeconds%60; 或allSeconds%=%60;
string allSecondsStr=allSeconds<10?“0”+allSeconds:allSeconds.ToString();
(5) 控制声音以及静音效果:
mediaPlayer.Control.SetVolume(value);
mediaPlayer.Control.MuteAudio(true);
注意:静音跟音量是没有关系的,即:
设置静音后,能达到静音效果,但是音量值不为0,需要手动设置,建议设置静音最好通过控制Volume=0 来实现静音效果
(6) 事件:mediaPlayer.Events.AddListener(方法名); 如不知道参数,定义方法名,右键创建该方法(VS功能)
可以通过Switch语句实现 不同事件执行不同方法
MediaPlayerEvent.EventType.__
eg: switch (arg1){
case MediaPlayerEvent.EventType.SubtitleChange:
字幕改变方法 break;
case MediaPlayerEvent.EventType.FinishedPlaying:
播放完毕方法 break;}
(7)播放字幕:需要字幕的srt文件,首先设置组件中的 LoadExternalSubtitl为true,并绑定字幕文件,
给需要显示的Text组件添加SubtitlesUGUI组件,并进行绑定。
srt文件可以以记事本格式打开,支持富文本
如自己编写,按照如下格式在txt上写好,设置编码为UTF-8,后缀改为srt即可
格式为: eg:
1
00:00:00,000 --> 00:00:02,000
需要显示的字幕
隔一行
2
00:00:02,000 --> 00:00:05,000
(8)帧提取,自带事例场景脚本

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity AVPro Video是一种在Unity游戏引擎中用于播放视频的插件。它允许开发者在游戏中无缝播放高质量的视频,包括在安卓平台上。在Android平台上播放视频,首先需要将视频文件保存在游戏资源文件夹中的特定位置,然后使用Unity AVPro Video插件中的API来加载并播放视频。 首先,我们需要将视频文件拖放到Unity项目的资源文件夹中,确保它们被正确导入。然后,我们可以通过在Unity场景中创建一个空的GameObject并添加AVPro Video的脚本组件来实现视频播放。该脚本组件将提供用于控制视频播放的各种功能和选项。 在使用AVPro Video播放视频时,我们可以设置视频播放位置、音量、速度和循环等属性。我们还可以通过脚本控制视频的暂停、停止、倒放、快进和快退等操作。插件还支持多个视频之间的过渡和混合效果,以及设置视频的遮罩和透明度。 为了在安卓设备上播放视频,我们需要将Unity项目导出为一个安卓应用程序,并将其部署到设备上。在导出过程中,如果已正确安装并配置了Unity AVPro Video插件,它将自动包含在导出的应用程序中。一旦应用程序被安装在安卓设备上,我们可以通过调用相应的播放函数来开始播放视频。 总之,Unity AVPro Video插件为安卓平台提供了强大且易于使用的功能,使开发者能够在游戏中无缝播放高质量的视频。通过正确配置和使用该插件,我们可以轻松实现在安卓设备上播放视频的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值