Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


VideoPlayer

Plays video content onto a target.
Read time 12 minutesLast updated 4 days ago

Definition

[RequireComponent(typeof(Transform))]public sealed class VideoPlayer : Behaviour

Remarks

Content can be either a VideoClip imported asset or a URL such as
file://
or
http://
. Video content will be projected onto one of the supported targets, such as camera background or RenderTexture. If the video content includes transparency, this transparency will be present in the target, allowing objects behind the video target to be visible. When the data VideoPlayer.source is set to URL, the audio and video description of what is being played will only be initialized once the VideoPlayer preparation is completed. You can test this with VideoPlayer.isPrepared.
Refer to Video file compatibility for more information on supported video file formats.
The following demonstrates a few features of the VideoPlayer:

Examples

// Examples of VideoPlayer functionusing 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; }}

Properties

Property

Description

aspectRatioDefines how the video content will be stretched to fill the target area.
audioOutputModeDestination for the audio embedded in the video.
audioTrackCountNumber of audio tracks found in the data source currently configured. (Read Only)
canSetDirectAudioVolumeWhether direct-output volume controls are supported for the current platform and video format. (Read Only)
canSetPlaybackSpeedWhether you can change the playback speed. (Read Only)
canSetSkipOnDropWhether frame-skipping to maintain synchronization can be controlled. (Read Only)
canSetTimeWhether you can change the current time using the VideoPlayer.time or VideoPlayer.frame properties. (Read Only)
canSetTimeUpdateModeWhether you can change the time source followed by the VideoPlayer. (Read Only)
canStepReturns
true
if the VideoPlayer can step forward through the video content. (Read Only)
clipThe clip being played by the VideoPlayer.
clockTimeThe clock time that the VideoPlayer follows to schedule its samples. The clock time is expressed in seconds. (Read Only)
controlledAudioTrackCountNumber of audio tracks that this VideoPlayer will take control of.
externalReferenceTimeReference time of the external clock the VideoPlayer uses to correct its drift.
frameThe frame index of the currently available frame in VideoPlayer.texture.
frameCountNumber of frames in the current video content. (Read Only)
frameRateThe frame rate of the clip or URL in frames/second. (Read Only)
heightThe height of the images in the VideoClip, or URL, in pixels. (Read Only)
isLoopingDetermines whether the VideoPlayer restarts from the beginning when it reaches the end of the clip.
isPausedWhether playback is paused. (Read Only)
isPlayingReturns whether the VideoPlayer is currently playing the content.
isPreparedReturns whether the VideoPlayer has successfully prepared the content to be played.
lengthThe length of the VideoClip, or the URL, in seconds. (Read Only)
pixelAspectRatioDenominatorDenominator of the pixel aspect ratio (num:den) for the VideoClip or the URL. (Read Only)
pixelAspectRatioNumeratorNumerator of the pixel aspect ratio (num:den) for the VideoClip or the URL. (Read Only)
playbackSpeedFactor by which the basic playback rate will be multiplied.
playOnAwakeWhether the content will start playing back as soon as the component awakes.
renderModeWhere the video content will be drawn.
sendFrameReadyEventsEnables the frameReady events.
skipOnDropWhether the VideoPlayer is allowed to skip frames to catch up with current time.
sourceThe source that the VideoPlayer uses for playback.
targetCameraCamera component to draw to when VideoPlayer.renderMode is set to either VideoRenderMode.CameraFarPlane or VideoRenderMode.CameraNearPlane.
targetCamera3DLayoutType of 3D content contained in the source video media.
targetCameraAlphaOverall transparency level of the target camera plane video.
targetMaterialPropertyMaterial texture property which is targeted when VideoPlayer.renderMode is set to MaterialOverride.
targetMaterialRendererRenderer which is targeted when VideoPlayer.renderMode is set to MaterialOverride
targetTextureRenderTexture to draw to when VideoPlayer.renderMode is set to VideoRenderMode.RenderTexture.
textureInternal texture in which video content is placed. (Read Only)
timeThe presentation time of the currently available frame in VideoPlayer.texture in seconds.
timeReferenceThe clock that the VideoPlayer observes to detect and correct drift.
timeUpdateModeThe clock source used by the VideoPlayer to derive its current time.
urlThe file URL or web URL that the VideoPlayer reads content from.
waitForFirstFrameDetermines whether the VideoPlayer will wait for the first frame to be loaded into the texture before starting playback when VideoPlayer.playOnAwake is on.
widthThe width of the images in the VideoClip, or URL, in pixels. (Read Only)

Static Properties

Property

Description

controlledAudioTrackMaxCountMaximum number of audio tracks that can be controlled. (Read Only)

Methods

Method

Description

EnableAudioTrackEnable/disable audio track decoding. Only effective when the VideoPlayer is not currently playing.
GetAudioChannelCountThe number of audio channels in the specified audio track.
GetAudioLanguageCodeReturns the language code, if any, for the specified track.
GetAudioSampleRateGets the audio track sampling rate in Hertz.
GetDirectAudioMuteGets the direct-output audio mute status for the specified track.
GetDirectAudioVolumeReturn the direct-output volume for specified track.
GetTargetAudioSourceGets the AudioSource that will receive audio samples for the specified track if VideoPlayer.audioOutputMode is set to VideoAudioOutputMode.AudioSource.
IsAudioTrackEnabledWhether decoding for the specified audio track is enabled. See VideoPlayer.EnableAudioTrack for distinction with mute.
PausePauses the playback and leaves the current time intact.
PlayStarts or resumes the playback of a video.
PreparePrepares the playback engine so that it's ready for playback.
SetDirectAudioMuteSet the direct-output audio mute status for the specified track.
SetDirectAudioVolumeSet the direct-output audio volume for the specified track.
SetTargetAudioSourceSets the AudioSource that will receive audio samples for the specified track if this audio target is selected with VideoPlayer.audioOutputMode.
StepForwardImmediately advance the current time by one frame.
StopStops the playback and sets the current time to 0.

Events

Member

Description

clockResyncOccurredInvoked when the VideoPlayer clock is synced back to its VideoTimeReference.
errorReceivedThe VideoPlayer uses this callback to report various types of errors.
frameDroppedInvoked when the video decoder does not produce a frame as per the time source during playback.
frameReadyThe VideoPlayer invokes this event when a new frame is ready to be displayed.
loopPointReachedThe VideoPlayer emits this event when the video reaches the end of its playback.
prepareCompletedThe VideoPlayer invokes this event when the video is ready for playback.
seekCompletedInvoke after a seek operation completes.
startedThe VideoPlayer emits this event when the video starts to play.

Delegates

Delegate

Description

VideoPlayer.ErrorEventHandlerDelegate type for VideoPlayer events that contain an error message.
VideoPlayer.EventHandlerDelegate type for all events without parameters emitted by VideoPlayers.
VideoPlayer.FrameReadyEventHandlerDelegate type for VideoPlayer events that carry a frame number.
VideoPlayer.TimeEventHandlerDelegate type for VideoPlayer events that carry a time position.

Inheritance

Inherited Members

Operators

Operator

Description

operator ==Compares two object references to see if they refer to the same object.
boolDetermines whether the object exists.
operator !=Compares if two objects refer to a different object.