# 视频播放器 (Video Player) 组件

> Learn more about the settings of the Video Player component.

使用视频播放器[组件](/engine/6000.0/manual/working-in-unity/working-with-gameobjects/unity-components/components.md)可将[视频文件](/engine/6000.0/manual/video.md)附加到[游戏对象](/engine/6000.0/manual/working-in-unity/working-with-gameobjects/game-objects.md)，然后在运行时在游戏对象的[纹理](/engine/6000.0/manual/materials-and-shaders/textures/textures-getting-started/textures.md)上播放。

以下截屏显示了一个连接到球形游戏对象的视频播放器组件。

默认情况下，视频播放器组件的\_\_材质属性 (Material Property)\_\_ 设置为游戏对象的主纹理，这意味着视频播放器组件附加到具有渲染器的游戏对象时，它会自动将自身分配给该渲染器上的纹理（因为这是该游戏对象的主纹理）。此处，游戏对象有一个网格渲染器 (Mesh Renderer) 组件，因此视频播放器会自动将其分配给 Renderer 字段，这意味着视频剪辑会在网格渲染器的纹理上播放。


**视频播放器组件附加到球形游戏对象，在游戏对象的主纹理（在本例中，为网格渲染器的纹理）上播放视频剪辑:**
![](/api/media?file=/engine/6000.0/media/images/Video-1.png)

还可设置要播放视频的特定目标，包括：

* [摄像机](/engine/6000.0/manual/working-in-unity/cameras/birp/class-camera.md)平面

* [渲染纹理](/engine/6000.0/manual/materials-and-shaders/textures/textures-reference/class-render-texture.md)

* [材质](/engine/6000.0/manual/materials-and-shaders/materials.md)纹理参数

* 组件中的任何[纹理](/engine/6000.0/manual/materials-and-shaders/textures/textures-reference/class-texture-importer.md)字段

## 视频播放器组件参考##additional-resources

| **属性**                   | **描述**                                                                                                                                            |                                                                                                                                                                                                                          |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Source**               | 选择视频源类型。                                                                                                                                          |                                                                                                                                                                                                                          |
| **Video Clip**           | 选择要分配给视频播放器组件的[视频剪辑](/engine/6000.0/manual/video/sources/class-video-clip.md)。Web 平台不支持此选项。                                                       |                                                                                                                                                                                                                          |
| **URL**                  | 输入 URL（要分配给视频播放器的视频的 http\:// 或 file://)）。                                                                                                        |                                                                                                                                                                                                                          |
| **Update Mode**          | 设置视频播放器组件用于更新其时序的时钟源。                                                                                                                             |                                                                                                                                                                                                                          |
|                          | **DSP Time**                                                                                                                                      | 使用处理音频的相同时钟源。                                                                                                                                                                                                            |
|                          | **Game Time**                                                                                                                                     | 使用与游戏时钟相同的时钟源。此时钟源受[时间标度和捕获帧率设置](/engine/6000.0/manual/scripting/object-oriented-development/managing-time-and-frame-rate.md)的影响。                                                                                        |
|                          | **Unscaled Game Time**                                                                                                                            | 使用与游戏时钟相同的时钟源，但不会受到[时间标度或捕获帧率](/engine/6000.0/manual/scripting/object-oriented-development/managing-time-and-frame-rate.md)的影响。                                                                                          |
| **Play On Awake**        | 在场景启动时播放视频。如果希望在运行时的另一个点触发视频播放，请将其清除。此情况下可使用 `Play()` 命令通过脚本触发视频播放。                                                                               |                                                                                                                                                                                                                          |
| **Wait For First Frame** | 在游戏开始前等待源视频的第一帧准备好显示。要使视频时间与游戏的其余部分保持同步，请将其清除，这可能会导致前几帧被丢弃。                                                                                       |                                                                                                                                                                                                                          |
| **Loop**                 | 在源视频到达其结尾时循环播放。清除此选项可在视频到达结尾时停止播放视频。                                                                                                              |                                                                                                                                                                                                                          |
| **Skip On Drop**         | 启用此选项时，如果视频播放器组件检测到播放位置与游戏时钟之间存在漂移，则视频播放器会跳过。禁用此选项时，视频播放器不会纠正漂移，而是系统性地播放所有帧。                                                                      |                                                                                                                                                                                                                          |
| **Playback Speed**       | 将播放速度的乘数设置为 0 到 10 之间的值。默认情况下，该字段设置为 1（正常速度）。如果该字段设置为 2，则视频以其正常速度的两倍进行播放。                                                                         |                                                                                                                                                                                                                          |
| **Render Mode**          | 选择视频的渲染方式。                                                                                                                                        |                                                                                                                                                                                                                          |
|                          | **Camera Far Plane**                                                                                                                              | 在摄像机的[远平面](/engine/6000.0/manual/working-in-unity/cameras/birp/class-camera.md)上渲染视频。                                                                                                                                    |
|                          | **Camera Near Plane**                                                                                                                             | 在摄像机的[近平面](/engine/6000.0/manual/working-in-unity/cameras/birp/class-camera.md)上渲染视频。                                                                                                                                    |
|                          | **Render Texture**                                                                                                                                | 将视频渲染到[渲染纹理](/engine/6000.0/manual/materials-and-shaders/textures/textures-reference/class-render-texture.md)中。                                                                                                          |
|                          | **Material Override**                                                                                                                             | 通过游戏对象渲染器的[材质](/engine/6000.0/script-reference/unity-engine/material.md)将视频渲染到游戏对象的选定纹理属性中。                                                                                                                              |
|                          | **API Only**                                                                                                                                      | 将视频渲染到 [VideoPlayer.texture](/engine/6000.0/script-reference/unity-engine-video/video-player/texture.md) 脚本 API 属性中。必须使用脚本将纹理分配给其预期目标。                                                                                   |
| **Camera**               | 定义接收视频的[摄像机](/engine/6000.0/manual/working-in-unity/cameras/birp/class-camera.md)。                                                                |                                                                                                                                                                                                                          |
| **Alpha**                | 设置要添加到源视频的全局透明度级别。此属性允许透过平面看到平面背后的元素。请参阅[视频透明度支持](/engine/6000.0/manual/video/sources/transparency.md)文档以了解有关 alpha 通道的更多信息。                      |                                                                                                                                                                                                                          |
| **3D Layout**            | 选择源视频中 3D 内容的布局。                                                                                                                                  |                                                                                                                                                                                                                          |
|                          | **None**                                                                                                                                          | 视频没有任何 3D 内容。                                                                                                                                                                                                            |
|                          | **Side by Side**                                                                                                                                  | 视频具有 3D 内容，其中左眼占据视频帧的左半部分，右眼占据视频帧的右半部分。                                                                                                                                                                                  |
|                          | **Over Under**                                                                                                                                    | 视频具有 3D 内容，其中左眼占据视频帧的上半部分，右眼占据视频帧的下半部分。                                                                                                                                                                                  |
| **Target Texture**       | 定义视频播放器组件用于渲染图像的渲染纹理。                                                                                                                             |                                                                                                                                                                                                                          |
| **Aspect Ratio**         | 在使用相应的**渲染模式 (Render Mode)** 时，用于填充**摄像机近平面 (Camera Near Plane)**、**摄像机远平面 (Camera Far Plane)** 或**渲染纹理 (Render Texture)** 的图像的宽高比。               |                                                                                                                                                                                                                          |
|                          | **No Scaling**                                                                                                                                    | 不使用缩放。视频在目标矩形内居中。                                                                                                                                                                                                        |
|                          | **Fit Vertically**                                                                                                                                | 对源进行缩放以垂直适应目标矩形，在必要时裁剪左侧和右侧或在每侧留下黑色区域。此情况下保留源宽高比。                                                                                                                                                                        |
|                          | **Fit Horizontally**                                                                                                                              | 对源进行缩放以水平适应目标矩形，在必要时裁剪顶部和底部区域或在顶部和底部留下黑色区域。此情况下保留源宽高比。                                                                                                                                                                   |
|                          | **Fit Inside**                                                                                                                                    | 对源进行缩放以适合目标矩形而不必裁剪。根据需要，在左侧和右侧或上方和下方留下黑色区域。此情况下保留源宽高比。                                                                                                                                                                   |
|                          | **Fit Outside**                                                                                                                                   | 对源进行缩放以适应目标矩形，而不必在左侧和右侧或上方和下方留下黑色区域，可根据需要进行裁剪。此情况下保留源宽高比。                                                                                                                                                                |
|                          | **Stretch**                                                                                                                                       | 在水平和垂直方向均进行缩放以适应目标矩形。不会保留源宽高比。                                                                                                                                                                                           |
| **Renderer**             | 选择视频播放器组件用于渲染图像的[渲染器](/engine/6000.0/script-reference/unity-engine/renderer.md)。设置为 **None** 时，使用与视频播放器组件位于同一游戏对象上的**渲染器**。                       |                                                                                                                                                                                                                          |
| **Auto-Select Property** | 启用此选项后，视频播放器组件会自动选择[渲染器](/engine/6000.0/script-reference/unity-engine/renderer.md)的主纹理。禁用此选项时，可以手动设置**材质属性**选项。                                   |                                                                                                                                                                                                                          |
|                          | **Material Property**                                                                                                                             | 接受视频播放器组件图像的[材质纹理属性](/engine/6000.0/script-reference/unity-engine/material/set-texture.md)的名称。                                                                                                                           |
| **Audio Output Mode**    | 定义如何输出源的音频轨道。                                                                                                                                     |                                                                                                                                                                                                                          |
|                          | **None**                                                                                                                                          | 未播放音频。                                                                                                                                                                                                                   |
|                          | **Audio Source**                                                                                                                                  | 音频样本发送到选定[音频源](/engine/6000.0/manual/audio/reference/class-audio-source.md)，允许应用 Unity 的音频处理。                                                                                                                            |
|                          | **Direct**                                                                                                                                        | 音频样本绕过 Unity 的音频处理，直接发送到音频输出硬件。                                                                                                                                                                                          |
|                          | **API Only (Experimental)**                                                                                                                       | 音频样本将发送到关联的 [AudioSampleProvider](/engine/6000.0/script-reference/unity-engine-experimental-audio/audio-sample-provider.md)。                                                                                             |
| **Controlled Tracks**    | 视频中的音频轨道数量。仅当**来源 (Source)** 为 **URL** 时显示。**来源 (Source)** 为**视频剪辑 (Video Clip)** 时，通过检查视频文件来确定轨道数。                                               |                                                                                                                                                                                                                          |
| **Track Number**         | 启用关联的音频轨道以用于播放。必须在播放前设置此选项。复选框左侧的文本提供有关音频轨道的信息，特别是轨道编号、语言和声道数。当来源为 URL 时，此信息仅在播放期间可用。仅当源是具有一个或多个音轨的视频剪辑，或源是 URL 时，才显示此属性（允许您指示 URL 在播放期间预计有多少轨道）。 |                                                                                                                                                                                                                          |
|                          | **Audio Source**                                                                                                                                  | 用于播放音频轨道的[音频源](/engine/6000.0/manual/audio/reference/class-audio-source.md)。目标音频源也可以播放音频剪辑。音频源的播放控件（脚本 API 中的 `Play On Awake` 和 `Play()`）不适用于视频源的音轨。仅当**音频输出模式 (Audio Output Mode)** 设置为**音频源 (Audio Source)** 时，才显示此属性。 |
|                          | **Mute**                                                                                                                                          | 将关联的音频轨道静音。在**音频源 (Audio Source)** 模式中，将使用音频源的控件。仅当**音频输出模式 (Audio Output Mode)** 设置为**直接 (Direct)** 时，才显示此属性。                                                                                                           |
|                          | **Volume**                                                                                                                                        | 关联音频轨道的音量。在**音频源 (Audio Source)** 模式中，将使用音频源的音量。仅当**音频输出模式 (Audio Output Mode)** 设置为**直接 (Direct)** 时，才显示此属性。                                                                                                            |

## 视频播放器脚本示例

以下脚本演示了视频播放器组件的一些功能。

```
// Examples of Video Player function

using UnityEngine;

public class Example : MonoBehaviour
{
    void Start()
    {
        // Will attach a Video Player to the main camera.
        GameObject camera = GameObject.Find("Main Camera");

        // VideoPlayer automatically targets the camera backplane when it is added
        // to a camera object, no need to change videoPlayer.targetCamera.
        var videoPlayer = camera.AddComponent<UnityEngine.Video.VideoPlayer>();

        // Play on awake defaults to true. Set it to false to avoid the url set
        // below to auto-start playback since we're in Start().
        videoPlayer.playOnAwake = false;

        // By default, Video Players added to a camera will use the far plane.
        // Let's target the near plane instead.
        videoPlayer.renderMode = UnityEngine.Video.VideoRenderMode.CameraNearPlane;

        // This will cause our Scene to be visible through the video being played.
        videoPlayer.targetCameraAlpha = 0.5F;

        // Set the video to play. URL supports local absolute or relative paths.
        // Here, using absolute.
        videoPlayer.url = "/Users/graham/movie.mov";

        // Skip the first 100 frames.
        videoPlayer.frame = 100;

        // Restart from beginning when done.
        videoPlayer.isLooping = true;

        // Each time we reach the end, we slow down the playback by a factor of 10.
        videoPlayer.loopPointReached += EndReached;

        // Start playback. This means the Video Player may have to prepare (reserve
        // resources, pre-load a few frames, etc.). To better control the delays
        // associated with this preparation one can use videoPlayer.Prepare() along with
        // its prepareCompleted event.
        videoPlayer.Play();
    }

    void EndReached(UnityEngine.Video.VideoPlayer vp)
    {
        vp.playbackSpeed = vp.playbackSpeed / 10.0F;
    }
}
```
