You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Unity中使用Slider控制视频播放器的播放速度

Unity Slider控制VideoPlayer播放速度实现方法

前置修改说明

你现有的代码只监听了Slider的数值变化并输出日志,没有关联VideoPlayer组件并对其属性赋值,按以下步骤调整即可生效:

1. 调整脚本代码

需要先引入VideoPlayer相关命名空间,声明VideoPlayer变量接收要控制的组件,在值变化回调中为播放速度属性赋值,完整代码如下:

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;

public class VideoSpeedControl : MonoBehaviour
{
    // 关联UI调速滑块
    public Slider speedSlider;
    // 关联需要控制的视频播放器组件
    public VideoPlayer targetVideo;

    void Start()
    {
        // 初始化时同步滑块与视频默认播放速度
        speedSlider.value = targetVideo.playbackSpeed;
        // 绑定滑块值变化监听
        speedSlider.onValueChanged.AddListener(OnSpeedChanged);
    }

    void OnSpeedChanged()
    {
        // 将滑块值赋值给视频播放速度属性
        targetVideo.playbackSpeed = speedSlider.value;
        Debug.Log($"当前播放速度:{speedSlider.value}");
    }
}

2. 场景组件配置

  • 将修改后的脚本挂载到场景中任意激活的游戏对象上
  • 将你UI中的调速Slider拖入脚本的speedSlider参数槽
  • 将场景中需要控制的VideoPlayer组件拖入脚本的targetVideo参数槽
  • 选中Slider组件,设置数值范围:
    • 普通无级调速可将Min Value设为0.2,Max Value设为3,覆盖常用的慢放到快放区间
    • 如果需要固定档位调速(如0.5x/1x/2x),可勾选Whole Numbers,再自行做数值映射即可

3. 异常问题排查

如果调速后出现无声音、音画不同步的问题,优先确认你的视频编码为H.264格式的MP4文件,部分特殊编码的视频不支持变速播放
如果你需要变速时保持声音音调不变,需要给VideoPlayer关联的AudioSource组件添加Pitch Shifter效果器,同步将播放速度赋值给AudioSource的pitch属性

UI参考

UI界面示意图

内容的提问来源于stack exchange,提问作者Jigen Otsuki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 07:45:08