unity VideoPlayer播放完成事件

VideoPlayer使用的比较少 一般都用AVpro 但有些视屏比较特殊 例如带透明通道的MP4 需要吧背景黑色过滤掉 就用到了VideoPlayer 播放完成事件

 public VideoPlayer vp;
  void Start()
    {
 vp.loopPointReached += EndWithVideoPlay;
 }
  public void EndWithVideoPlay(VideoPlayer source)
    {
        RemoveTargetframe();
        //TODO播放完成后事件
    }
         /// <summary>
    ///texture 清除上一帧渲染
    /// </summary>
    private void RemoveTargetframe()
    {
        vp.targetTexture.Release();
        vp.targetTexture.MarkRestoreExpected();
    }
### Unity VideoPlayer 组件从头开始播放视频 为了确保 `VideoPlayer` 组件能够从头开始播放视频,在脚本中可以调用特定方法来控制播放行为。下面是一个详细的解决方案: #### 方法一:使用 C# 脚本来控制播放位置 可以通过编写简单的C#脚本来实现这一功能。创建一个新的MonoBehaviour类并附加到场景中的游戏对象。 ```csharp using UnityEngine; using UnityEngine.Video; public class VideoController : MonoBehaviour { public VideoPlayer videoPlayer; void Start() { // 设置播放器的时间轴回到起点 videoPlayer.time = 0f; // 开始播放视频 videoPlayer.Play(); } public void RestartVideo() { // 将当前时间设为0秒,即返回开头 videoPlayer.time = 0f; // 播放视频 videoPlayer.Play(); } } ``` 此代码片段定义了一个名为 `RestartVideo()` 的公共函数,可以在其他地方触发它以重新启动视频[^1]。 对于 iOS 设备上的特殊情况,当遇到通过 Slider 控件调整进度条时导致视频重置的问题,建议监听Slider的变化事件,并手动处理视频的位置更新逻辑而不是依赖默认的行为[^2]。 #### 方法二:直接操作 Inspector 面板 如果不希望通过编程方式解决,则可以直接在Unity编辑器内的Inspector面板里找到对应的 `VideoPlayer` 组件实例,将其 `Playback Speed` 属性设置为负数再恢复成正数也可以达到类似的效果;不过这种方法不够灵活也不推荐用于生产环境下的项目开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值