Unity中基于VideoPlayer组件的视频播放

Unity版本5.6.7

用UI组件来实现视频的播放

参考博文:https://blog.youkuaiyun.com/m0_37679113/article/details/80087473  感谢作者大大,收获颇多!在此作自我整理与回顾

1.创建Render Texture

       在Project下选择想要创建Render Texture的文件夹下    右键Create->Render Texture       

        

2.创建Raw Image

        在Hierarchy中右键选择UI->Canvas(因为我的项目中还要添加别的Image啊Button啊什么的所以创建了Canvas,其实可以省略?)下面是我创建的RawImage(重命名为VideoImage)

        

       在其下右键UI->Raw Image ,作为Video的显示,并选择刚

### 如何在 Unity 中播放视频 为了实现在 Unity 中播放视频,可以利用 `VideoPlayer` 组件及其相关属性方法。这不仅支持基本的播放操作,还允许更复杂的交互如暂停、拖动进度条等。 #### 使用 VideoPlayer 播放视频 创建并配置 `VideoPlayer` 是第一步,在 Inspector 窗口中可调整其多种参数以适应不同需求。对于网络视频流的支持特别值得注意,当 `source` 属性被设为 URL 时,意味着可以从指定网址加载媒体文件[^5]。 ```csharp using UnityEngine; using UnityEngine.Video; public class PlayVideo : MonoBehaviour { public string videoUrl; // 视频链接 private VideoPlayer videoPlayer; void Start() { videoPlayer = gameObject.AddComponent<VideoPlayer>(); // 设置 VideoPlayer 参数 videoPlayer.source = VideoSource.Url; videoPlayer.url = videoUrl; videoPlayer.playOnAwake = false; videoPlayer.isLooping = true; videoPlayer.prepareCompleted += OnPrepareComplete; videoPlayer.SendEventPreparingFailed += OnPreparationFailed; } void OnPrepareComplete(VideoPlayer source) { Debug.Log("准备完成"); source.Play(); } void OnPreparationFailed(VideoPlayer source, string errorMessage) { Debug.LogError($"准备失败: {errorMessage}"); } } ``` 这段 C# 脚本展示了如何初始化一个基于 URL 的 `VideoPlayer` 实例,并设置了回调函数监听准备状态的变化。一旦准备好就会自动开始播放循环模式下的视频[^4]。 #### 控制视频播放行为 除了简单的播放外,还可以进一步增强用户体验,比如加入按钮控制播放/暂停逻辑或是同步更新 UI 上的时间信息: ```csharp // 增加更多功能... void Update() { if (videoPlayer != null && videoPlayer.isPlaying) { float currentTimeInSeconds = videoPlayer.time; float totalTimeInSeconds = videoPlayer.length; // 更新UI上的时间和进度条位置 } } public void TogglePlayPause() { if(videoPlayer.isPlaying){ videoPlayer.Pause(); }else{ videoPlayer.Play(); } } ``` 上述代码片段实现了两个重要特性:实时获取当前播放时刻与总长度以便刷新界面;提供切换播放/暂停状态的方法[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值