class in UnityEngine.Video
/
Inherits from:Behaviour
/
Implemented in:UnityEngine.VideoModule
Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.
CloseFor some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.
ClosePlays video content onto a target.
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 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 | Maximum number of audio tracks that can be controlled. (Read Only) |
aspectRatio | Defines how the video content will be stretched to fill the target area. |
audioOutputMode | Destination for the audio embedded in the video. |
audioTrackCount | Number of audio tracks found in the data source currently configured. (Read Only) |
canSetDirectAudioVolume | Whether direct-output volume controls are supported for the current platform and video format. (Read Only) |
canSetPlaybackSpeed | Whether you can change the playback speed. (Read Only) |
canSetSkipOnDrop | Whether frame-skipping to maintain synchronization can be controlled. (Read Only) |
canSetTime | Whether you can change the current time using the VideoPlayer.time or VideoPlayer.frame properties. (Read Only) |
canSetTimeUpdateMode | Whether you can change the time source followed by the VideoPlayer. (Read Only) |
canStep | Returns true if the VideoPlayer can step forward through the video content. (Read Only) |
clip | The clip being played by the VideoPlayer. |
clockTime | The clock time that the VideoPlayer follows to schedule its samples. The clock time is expressed in seconds. (Read Only) |
controlledAudioTrackCount | Number of audio tracks that this VideoPlayer will take control of. |
externalReferenceTime | Reference time of the external clock the VideoPlayer uses to correct its drift. |
frame | The frame index of the currently available frame in VideoPlayer.texture. |
frameCount | Number of frames in the current video content. (Read Only) |
frameRate | The frame rate of the clip or URL in frames/second. (Read Only) |
height | The height of the images in the VideoClip, or URL, in pixels. (Read Only) |
isLooping | Determines whether the VideoPlayer restarts from the beginning when it reaches the end of the clip. |
isPaused | Whether playback is paused. (Read Only) |
isPlaying | Returns whether the VideoPlayer is currently playing the content. |
isPrepared | Returns whether the VideoPlayer has successfully prepared the content to be played. |
length | The length of the VideoClip, or the URL, in seconds. (Read Only) |
pixelAspectRatioDenominator | Denominator of the pixel aspect ratio (num:den) for the VideoClip or the URL. (Read Only) |
pixelAspectRatioNumerator | Numerator of the pixel aspect ratio (num:den) for the VideoClip or the URL. (Read Only) |
playbackSpeed | Factor by which the basic playback rate will be multiplied. |
playOnAwake | Whether the content will start playing back as soon as the component awakes. |
renderMode | Where the video content will be drawn. |
sendFrameReadyEvents | Enables the frameReady events. |
skipOnDrop | Whether the VideoPlayer is allowed to skip frames to catch up with current time. |
source | The source that the VideoPlayer uses for playback. |
targetCamera | Camera component to draw to when VideoPlayer.renderMode is set to either VideoRenderMode.CameraFarPlane or VideoRenderMode.CameraNearPlane. |
targetCamera3DLayout | Type of 3D content contained in the source video media. |
targetCameraAlpha | Overall transparency level of the target camera plane video. |
targetMaterialProperty | Material texture property which is targeted when VideoPlayer.renderMode is set to Video.VideoTarget.MaterialOverride. |
targetMaterialRenderer | Renderer which is targeted when VideoPlayer.renderMode is set to Video.VideoTarget.MaterialOverride |
targetTexture | RenderTexture to draw to when VideoPlayer.renderMode is set to Video.VideoTarget.RenderTexture. |
texture | Internal texture in which video content is placed. (Read Only) |
time | The presentation time of the currently available frame in VideoPlayer.texture in seconds. |
timeReference | The clock that the VideoPlayer observes to detect and correct drift. |
timeUpdateMode | The clock source used by the VideoPlayer to derive its current time. |
url | The file or HTTP URL that the VideoPlayer reads content from. |
waitForFirstFrame | Determines whether the VideoPlayer will wait for the first frame to be loaded into the texture before starting playback when VideoPlayer.playOnAwake is on. |
width | The width of the images in the VideoClip, or URL, in pixels. (Read Only) |
EnableAudioTrack | Enable/disable audio track decoding. Only effective when the VideoPlayer is not currently playing. |
GetAudioChannelCount | The number of audio channels in the specified audio track. |
GetAudioLanguageCode | Returns the language code, if any, for the specified track. |
GetAudioSampleRate | Gets the audio track sampling rate in Hertz. |
GetDirectAudioMute | Gets the direct-output audio mute status for the specified track. |
GetDirectAudioVolume | Return the direct-output volume for specified track. |
GetTargetAudioSource | Gets the AudioSource that will receive audio samples for the specified track if VideoPlayer.audioOutputMode is set to VideoAudioOutputMode.AudioSource. |
IsAudioTrackEnabled | Whether decoding for the specified audio track is enabled. See VideoPlayer.EnableAudioTrack for distinction with mute. |
Pause | Pauses the playback and leaves the current time intact. |
Play | Starts or resumes the playback of a video. |
Prepare | Prepares the playback engine so that it's ready for playback. |
SetDirectAudioMute | Set the direct-output audio mute status for the specified track. |
SetDirectAudioVolume | Set the direct-output audio volume for the specified track. |
SetTargetAudioSource | Sets the AudioSource that will receive audio samples for the specified track if this audio target is selected with VideoPlayer.audioOutputMode. |
StepForward | Immediately advance the current time by one frame. |
Stop | Stops the playback and sets the current time to 0. |
clockResyncOccurred | Invoked when the VideoPlayer clock is synced back to its VideoTimeReference. |
errorReceived | The VideoPlayer uses this callback to report various types of errors. |
frameDropped | Invoked when the video decoder does not produce a frame as per the time source during playback. |
frameReady | The VideoPlayer invokes this event when a new frame is ready to be displayed. |
loopPointReached | The VideoPlayer emits this event when the video reaches the end of its playback. |
prepareCompleted | The VideoPlayer invokes this event when the video is ready for playback. |
seekCompleted | Invoke after a seek operation completes. |
started | The VideoPlayer emits this event when the video starts to play. |
ErrorEventHandler | Delegate type for VideoPlayer events that contain an error message. |
EventHandler | Delegate type for all events without parameters emitted by VideoPlayers. |
FrameReadyEventHandler | Delegate type for VideoPlayer events that carry a frame number. |
TimeEventHandler | Delegate type for VideoPlayer events that carry a time position. |
enabled | Enabled Behaviours are Updated, disabled Behaviours are not. |
isActiveAndEnabled | Reports whether a GameObject and its associated Behaviour is active and enabled. |
gameObject | The game object this component is attached to. A component is always attached to a game object. |
tag | The tag of this game object. |
transform | The Transform attached to this GameObject. |
hideFlags | Should the object be hidden, saved with the Scene or modifiable by the user? |
name | The name of the object. |
BroadcastMessage | Calls the method named methodName on every MonoBehaviour in this game object or any of its children. |
CompareTag | Checks the GameObject's tag against the defined tag. |
GetComponent | Gets a reference to a component of type T on the same GameObject as the component specified. |
GetComponentInChildren | Gets a reference to a component of type T on the same GameObject as the component specified, or any child of the GameObject. |
GetComponentIndex | Gets the index of the component on its parent GameObject. |
GetComponentInParent | Gets a reference to a component of type T on the same GameObject as the component specified, or any parent of the GameObject. |
GetComponents | Gets references to all components of type T on the same GameObject as the component specified. |
GetComponentsInChildren | Gets references to all components of type T on the same GameObject as the component specified, and any child of the GameObject. |
GetComponentsInParent | Gets references to all components of type T on the same GameObject as the component specified, and any parent of the GameObject. |
SendMessage | Calls the method named methodName on every MonoBehaviour in this game object. |
SendMessageUpwards | Calls the method named methodName on every MonoBehaviour in this game object and on every ancestor of the behaviour. |
TryGetComponent | Gets the component of the specified type, if it exists. |
GetInstanceID | Gets the instance ID of the object. |
ToString | Returns the name of the object. |
Destroy | Removes a GameObject, component or asset. |
DestroyImmediate | Destroys the object obj immediately. You are strongly recommended to use Destroy instead. |
DontDestroyOnLoad | Do not destroy the target Object when loading a new Scene. |
FindAnyObjectByType | Retrieves any active loaded object of Type type. |
FindFirstObjectByType | Retrieves the first active loaded object of Type type. |
FindObjectsByType | Retrieves a list of all loaded objects of Type type. |
Instantiate | Clones the object original and returns the clone. |
InstantiateAsync | Captures a snapshot of the original object (that must be related to some GameObject) and returns the AsyncInstantiateOperation. |
bool | Does the object exist? |
operator != | Compares if two objects refer to a different object. |
operator == | Compares two object references to see if they refer to the same object. |
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.
When you visit any website, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. Click on the different category headings to find out more and change our default settings. However, blocking some types of cookies may impact your experience of the site and the services we are able to offer.
More information
These cookies enable the website to provide enhanced functionality and personalisation. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly.
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.
These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising. Some 3rd party video providers do not allow video views without targeting cookies. If you are experiencing difficulty viewing a video, you will need to set your cookie preferences for targeting to yes if you wish to view videos from these providers. Unity does not control this.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.