版本: Unity 6 (6000.0)
语言English
  • C#

VideoPlayer

UnityEngine.Video 中的类

/

继承自:Behaviour

/

实现于:UnityEngine.VideoModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

将视频内容播放到目标上。

内容可以是导入的 VideoClip 资源或 URL,例如 file://http://。视频内容将投射到受支持的目标之一,例如摄像机背景或 RenderTexture。如果视频内容包含透明度,则此透明度将存在于目标中,允许视频目标后面的对象可见。当数据 VideoPlayer.source 设置为 URL 时,播放内容的音频和视频描述仅在 VideoPlayer 准备完成后初始化。您可以使用 VideoPlayer.isPrepared 测试这一点。

有关支持的视频文件格式的更多信息,请参阅 视频文件兼容性

以下演示了 VideoPlayer 的一些功能

// Examples of VideoPlayer function

using UnityEngine; using UnityEngine.Video;

public class Example : MonoBehaviour { void Start() { // Will attach a VideoPlayer 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, VideoPlayers 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 VideoPlayer 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; } }

静态属性

controlledAudioTrackMaxCount可以控制的音频轨道的最大数量。(只读)

属性

aspectRatio定义如何拉伸视频内容以填充目标区域。
audioOutputMode视频中嵌入的音频的目标位置。
audioTrackCount当前配置的数据源中找到的音频轨道的数量。(只读)
canSetDirectAudioVolume当前平台和视频格式是否支持直接输出音量控制。(只读)
canSetPlaybackSpeed是否可以更改播放速度。(只读)
canSetSkipOnDrop是否可以控制跳帧以保持同步。(只读)
canSetTime是否可以使用 VideoPlayer.time 或 VideoPlayer.frame 属性更改当前时间。(只读)
canSetTimeUpdateMode是否可以更改 VideoPlayer 跟踪的时间源。(只读)
canStep如果 VideoPlayer 可以向前逐步浏览视频内容,则返回 true。(只读)
clipVideoPlayer 正在播放的剪辑。
clockTimeVideoPlayer 用于安排其样本的时钟时间。时钟时间以秒为单位。(只读)
controlledAudioTrackCount此 VideoPlayer 将控制的音频轨道的数量。
externalReferenceTimeVideoPlayer 用于校正其漂移的外部时钟的参考时间。
frameVideoPlayer.texture 中当前可用帧的帧索引。
frameCount当前视频内容中的帧数。(只读)
frameRate剪辑或 URL 的帧率,以帧/秒为单位。(只读)
heightVideoClip 或 URL 中图像的高度(以像素为单位)。(只读)
isLooping确定当 VideoPlayer 达到剪辑末尾时是否从开头重新开始。
isPaused播放是否已暂停。(只读)
isPlaying内容是否正在播放。(只读)
isPreparedVideoPlayer 是否已成功准备播放内容。(只读)
lengthVideoClip 或 URL 的长度(以秒为单位)。(只读)
pixelAspectRatioDenominatorVideoClip 或 URL 的像素纵横比 (num:den) 的分母。(只读)
pixelAspectRatioNumeratorVideoClip 或 URL 的像素纵横比 (num:den) 的分子。(只读)
playbackSpeed基本播放速率将乘以的因子。
playOnAwake组件唤醒后内容是否立即开始播放。
renderMode视频内容将在哪里绘制。
sendFrameReadyEvents启用 frameReady 事件。
skipOnDropVideoPlayer 是否允许跳过帧以赶上当前时间。
sourceVideoPlayer 用于播放的源。
targetCamera当 VideoPlayer.renderMode 设置为 VideoRenderMode.CameraFarPlane 或 VideoRenderMode.CameraNearPlane 时要绘制到的摄像机组件。
targetCamera3DLayout源视频媒体中包含的 3D 内容的类型。
targetCameraAlpha目标摄像机平面视频的整体透明度级别。
targetMaterialProperty当 VideoPlayer.renderMode 设置为 Video.VideoTarget.MaterialOverride 时,目标材质纹理属性。
targetMaterialRenderer当 VideoPlayer.renderMode 设置为 Video.VideoTarget.MaterialOverride 时,目标渲染器。
targetTexture当 VideoPlayer.renderMode 设置为 Video.VideoTarget.RenderTexture 时,要绘制到的 RenderTexture。
texture放置视频内容的内部纹理。(只读)
timeVideoPlayer.texture 中当前可用帧的呈现时间。
timeReferenceVideoPlayer 观察以检测和校正漂移的时钟。
timeUpdateModeVideoPlayer 用于派生其当前时间的时钟源。
urlVideoPlayer 从中读取内容的文件或 HTTP URL。
waitForFirstFrame确定当 VideoPlayer.playOnAwake 为开启状态时,VideoPlayer 是否会在第一帧加载到纹理中之前等待。
widthVideoClip 或 URL 中图像的宽度(以像素为单位)。(只读)

公共方法

EnableAudioTrack启用/禁用音频轨道解码。仅在 VideoPlayer 当前未播放时有效。
GetAudioChannelCount指定音频轨道中的音频通道数。
GetAudioLanguageCode返回指定轨道的语言代码(如果存在)。
GetAudioSampleRate获取音频轨道的采样率(以赫兹为单位)。
GetDirectAudioMute获取指定轨道的直接输出音频静音状态。
GetDirectAudioVolume返回指定轨道的直接输出音量。
GetTargetAudioSource获取将接收指定轨道音频样本的 AudioSource,如果 VideoPlayer.audioOutputMode 设置为 VideoAudioOutputMode.AudioSource。
IsAudioTrackEnabled指定音频轨道的解码是否已启用。请参阅 VideoPlayer.EnableAudioTrack 以区分静音。
Pause暂停播放并保持当前时间不变。
Play开始播放。
Prepare启动播放引擎准备。
SetDirectAudioMute设置指定轨道的直接输出音频静音状态。
SetDirectAudioVolume设置指定轨道的直接输出音频音量。
SetTargetAudioSource设置将接收指定轨道音频样本的 AudioSource,如果使用 VideoPlayer.audioOutputMode 选择此音频目标。
StepForward立即将当前时间提前一帧。
Stop停止播放并将当前时间设置为 0。

事件

clockResyncOccurred当 VideoPlayer 时钟同步回其 VideoTimeReference 时调用。
errorReceivedHTTP 连接问题等错误通过此回调报告。
frameDropped[尚未实现] 当视频解码器在播放期间未根据时间源生成帧时调用。
frameReady准备就绪新帧时调用。
loopPointReached当 VideoPlayer 达到要播放内容的末尾时调用。
prepareCompletedVideoPlayer 准备完成后调用。
seekCompleted查找操作完成后调用。
started调用 Play 后立即调用。

委托

ErrorEventHandler包含错误消息的 VideoPlayer 事件的委托类型。
EventHandlerVideoPlayer 发出的所有无参数事件的委托类型。
FrameReadyEventHandler承载帧号的 VideoPlayer 事件的委托类型。
TimeEventHandler承载时间位置的 VideoPlayer 事件的委托类型。

继承的成员

属性

enabled启用的行为将更新,禁用的行为将不会更新。
isActiveAndEnabled报告 GameObject 及其关联的行为是否处于活动状态并已启用。
gameObject此组件所附加到的游戏对象。组件始终附加到游戏对象。
tag此游戏对象的标签。
transform附加到此 GameObject 的 Transform。
hideFlags对象是否应隐藏、与场景一起保存或用户可修改?
name对象的名称。

公共方法

BroadcastMessage在此游戏对象或其任何子对象中的每个 MonoBehaviour 上调用名为 methodName 的方法。
CompareTag将 GameObject 的标签与定义的标签进行比较。
GetComponent获取与指定组件相同的 GameObject 上类型为 T 的组件的引用。
GetComponentInChildren获取与指定组件相同的 GameObject 或任何子对象上类型为 T 的组件的引用。
GetComponentIndex获取组件在其父 GameObject 上的索引。
GetComponentInParent获取与指定组件相同的 GameObject 或任何父对象上类型为 T 的组件的引用。
GetComponents获取与指定组件相同的 GameObject 上所有类型为 T 的组件的引用。
GetComponentsInChildren获取与指定组件相同的 GameObject 及其任何子对象上所有类型为 T 的组件的引用。
GetComponentsInParent获取与指定组件相同的 GameObject 及其任何父对象上所有类型为 T 的组件的引用。
SendMessage在此游戏对象中的每个 MonoBehaviour 上调用名为 methodName 的方法。
SendMessageUpwards在此游戏对象和行为的每个祖先上调用名为 methodName 的方法。
TryGetComponent获取指定类型的组件(如果存在)。
GetInstanceID获取对象的实例 ID。
ToString返回对象的名称。

静态方法

Destroy移除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 obj。强烈建议使用 Destroy 代替。
DontDestroyOnLoad加载新场景时不要销毁目标对象。
FindAnyObjectByType检索类型为 type 的任何活动加载对象。
FindFirstObjectByType检索类型为 type 的第一个活动加载对象。

FindObjectsByType检索所有已加载的 Type 类型对象列表。
Instantiate克隆对象 original 并返回克隆体。
InstantiateAsync捕获原始对象(必须与某个 GameObject 相关联)的快照,并返回 AsyncInstantiateOperation。

运算符

bool对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用是否指向同一个对象。