Unity 视频播放器,基于VideoPlayer,实现滑动进度条,显示视频时长,全屏显示,音量调节_unity 视频进度条
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
unity播放视频的方式有很多种但即轻量又好用的还是unity自带的VideoPlayer但没有视频基础操作的UI组件本篇带大家对视频的播放以及UI组件的实现
效果展示
Unity视频播放
DEMO下载https://gitee.com/jacobkay/videoplayer
一、安装方式
1、下载文件
2、将文件拖入工程中
3、将"ZVideoPlayer/Prefabs/VideoPlayer"预制体拖入到场景中的canvas中即可
二、API说明方式
- IsVideoPlaying获取当前播放状态
- PlayTime获取和设置播放时间单位秒
- FullScreen设置全屏状态
- VideoUrl: 设置视频url
- VideoVolum: 设置视频音量
- VideoClip设置视频clip
- Play()播放视频
- Pause(): 暂停视频
- Stop()停止视频
三、配置
触屏模式打开后会取消鼠标移入和移出的判断由点击控制面板的显示也隐藏视频中央会增加一个大的容易点击的播放按钮易于点击
如果播放器的适配模式为自适应则需要将自适应模式打开否则运行会报错
请注意此方法暂时功能不完全选择自适应模式后点击全屏会适配父对象的尺寸所以目前只支持父对象是全屏的情况下点击全屏后才会全屏
如有任何问题烦请打开demo文件夹中的help文件
如果只需要完成视频的播放不需要有UI控制面板则请按照下方的步骤完成即可
一、视频支持格式
Unity常用视频格式mov、mpg、mpeg、mp4、avi、asf
二、创建UI
1、Hierarchy中新建VideoPlayer组件
2、Hierarchy中创建RAWImage
3、在Assets中新建RenderTexture纹理
4、设置好视频的分辨率
5、将建好的纹理拖到第2步中新建的RawImage上
6、 将建好的纹理拖到第1步中新建的VideoPlayer的TargetTexture上
第5步和第6步的目的是使VideoPlayer中的视频图像导出到纹理文件中然后通过RAWImage显示纹理获取到的图像达到将视频进行播放的效果
7、将VideoPlayer的AudioOutputMode改成AudioSource然后在下方挂在AudioSource组件并赋给AudioSource上
至此视频即可正常播放
三、VideoPlayer常用的属性及方法
1、属性
Source视频来源
- Video Clip放入下载好的视频
- URL可以放入网上下载好的视频链接/下载好的视频的存储路径【没试过】
Play On Awake脚本载入时自动播放
Wait For First Frame决定是否在第一帧加载完成后才播放只有在Play On Awake被勾选是才有效
Loop循环
Playback Speed播放速度
RenderMode渲染模式
- Camera Far Plane摄像机的远平面上用于背景播放器
- Camera Near Plane摄像机的近平面上用作前景播放器
- Render Texture画面保存在Render Texture上用来UGUI的播放器
- Material Override视频画面复制给所选Render的Material。需要选择具有Render组件的物体可以选择赋值的材质属性。可制作360全景视频和VR视频。
Aspect Ratio自适应分辨率的方式
Audio Output Mode音频输出方式
- Audio Source音频样本发送到选定音频源允许应用 Unity 的音频处理。
- Direct音频样本绕过 Unity 的音频处理直接发送到音频输出硬件。
2、事件
errorReceived 错误监听到时被执行
frameDropped 有丢帧发生时被执行
frameReady 新的一帧准备好时被执行
loopPointReached 播放结束或播放到循环的点时被执行
prepareCompleted 视频准备完成时被执行
seekCompleted 查询帧操作完成时被执行
started在Play方法调用之后立刻调用