VideoFrame
A VideoFrame renders a rectangle, like a Frame does, with a moving video image. The video must be from a file uploaded to the Roblox website.
The video is scaled to fit the entirety of the rectangle, but looks best when displayed at its native resolution.
2D and 3D Sound
A VideoFrame placed underneath SurfaceGui on a BasePart will emit its sound from that part's BasePart.Position.
A VideoFrame exhibits the Doppler effect, meaning its frequency and pitch varies with the relative motion of whatever part it is attached to.
The volume of the VideoFrame will be determined by the distance between the client's sound listener (by default the Camera position) and the position of the VideoFrame's part.
A VideoFrame is considered "global" if it is not placed underneath SurfaceGui on a BasePart. In this case, the sound will play at the same volume throughout the entire place.
Code Samples
local screenPart = Instance.new("Part")
screenPart.Parent = workspace
local surfaceGui = Instance.new("SurfaceGui")
surfaceGui.Parent = screenPart
local videoFrame = Instance.new("VideoFrame")
videoFrame.Parent = surfaceGui
videoFrame.Looped = true
videoFrame.Video = "rbxassetid://" -- add an asset ID to this
while not videoFrame.IsLoaded do
task.wait()
end
videoFrame:Play()
Summary
Properties
Indicates when the VideoFrame.Video has loaded from Roblox servers and is ready to play.
Sets whether or not the VideoFrame.Video repeats once it has finished when it is playing.
Indicates whether the VideoFrame.Video is currently playing. It can be set to start or pause playback.
- read onlynot replicatedread parallel
Gets the original source resolution of the VideoFrame.Video file.
- read onlynot replicatedread parallel
Indicates the length of the VideoFrame.Video in seconds.
- not replicatedread parallel
Indicates the progress in seconds of the VideoFrame.Video.
The content ID of the video file a VideoFrame object is associated with.
Indicates how loud the VideoFrame.Video is currently playing back.
Determines whether a UI element sinks input.
- read parallel
Determines the origin point of a GuiObject, relative to its absolute size.
- read parallel
Determines whether resizing occurs based on child content.
- read parallel
Determines the GuiObject background color.
- read parallel
Determines the transparency of the GuiObject background and border.
- read parallel
Determines the color of the GuiObject border.
- read parallel
Determines in what manner the GuiObject border is laid out relative to its dimensions.
- read parallel
Determines the pixel width of a GuiObject border.
- read parallel
Determines if descendant GUIs outside of the bounds of a parent GUI element should render.
- read onlynot replicatedread parallel
- read parallel
- read parallel
Controls the sort order of a GUI when used with a UIGridStyleLayout.
- read parallel
Sets the GuiObject which will be selected when the Gamepad selector is moved in this direction.
- read parallel
Sets the GuiObject which will be selected when the Gamepad selector is moved in this direction.
- read parallel
Sets the GUI which will be selected when the Enum.Gamepad selector is moved in this direction.
- read parallel
Sets the GuiObject which will be selected when the Gamepad selector is moved in this direction.
Determines the pixel and scalar position of the GuiObject.
Determines the number of degrees by which a UI element is rotated.
- read parallel
Determine whether the GUI can be selected by a gamepad.
- read parallel
Overrides the default selection adornment used for gamepads.
- read parallel
The order of GuiObjects selected by the gamepad UI selection.
Determine the pixel and scalar size of a GUI.
- read parallel
Selects the GuiObject.Size axes that a GUI will be based relative to the size of its parent.
- hiddennot replicatedread paralleldeprecated
A mixed property of BackgroundTransparency and TextTransparency.
Determines whether a GuiObject.GUI and its descendants will be rendered.
Determines the order in which a GUI renders relative to other GUIs.
- read onlynot replicated
Describes the actual screen position of a UI element, in pixels.
- read onlynot replicated
Describes the actual screen rotation of a UI element, in degrees.
- read onlynot replicated
Describes the actual screen size of a UI element, in pixels.
- read parallel
When set to true, localization will be applied to this GuiBase2d and its descendants based on the GuiBase2d.RootLocalizationTable specified for this GuiBase2d.
- read parallel
A reference to a LocalizationTable to be used to apply automated localization to this GuiBase2d and its descendants.
- read parallel
Customizes gamepad selection behavior in the down direction.
- read parallel
Customizes gamepad selection behavior in the left direction.
- read parallel
Customizes gamepad selection behavior in the right direction.
- read parallel
Customizes gamepad selection behavior in the up direction.
- read parallel
Allows customization of gamepad selection movement.
Methods
Sets VideoFrame.Playing to false, pausing playback if the VideoFrame.Video is playing.
Sets VideoFrame.Playing to true, playing the VideoFrame.Video from the current VideoFrame.TimePosition.
- TweenPosition(endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Smoothly moves a GUI to a new UDim2.
- TweenSize(endSize : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Smoothly resizes a GUI to a new UDim2.
- TweenSizeAndPosition(endSize : UDim2,endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Smoothly moves a GUI to a new size and position.
Events
Fires whenever the VideoFrame.Video loops.
Fires when the VideoFrame.Video has completed playback and stopped.
Fires when the VideoFrame.Video is loaded.
This event fires whenever the VideoFrame.Video is paused using VideoFrame:Pause() or by setting VideoFrame.Playing to false.
Fires whenever the VideoFrame.Video is played using the VideoFrame:Play() function or by setting VideoFrame.Playing to true.
Fired when a user begins interacting via a Human-Computer Interface device (Mouse button down, touch begin, keyboard button down, etc).
Fired when a user changes how they're interacting via a Human-Computer Interface device (Mouse button down, touch begin, keyboard button down, etc).
Fired when a user stops interacting via a Human-Computer Interface device (Mouse button down, touch begin, keyboard button down, etc).
Fires when a user moves their mouse into a GUI element.
Fires when a user moves their mouse out of a GUI element.
Fires whenever a user moves their mouse while it is inside a GUI element.
Fires when a user scrolls their mouse wheel back when the mouse is over a GUI element.
Fires when a user scrolls their mouse wheel forward when the mouse is over a GUI element.
Fired when the GuiObject is being focused on with the Gamepad selector.
Fired when the Gamepad selector stops focusing on the GuiObject.
Fires when the player starts, continues and stops long-pressing the UI element.
- TouchPan(touchPositions : Array,totalTranslation : Vector2,velocity : Vector2,state : Enum.UserInputState):RBXScriptSignal
Fires when the player moves their finger on the UI element.
- TouchPinch(touchPositions : Array,scale : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Fires when the player performs a pinch or pull gesture using two fingers on the UI element.
- TouchRotate(touchPositions : Array,rotation : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Fires when the player performs a rotation gesture using two fingers on the UI element.
Fires when the player performs a swipe gesture on the UI element.
Fires when the player performs a tap gesture on the UI element.
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
Fires when the gamepad selection moves to, leaves, or changes within the connected GuiBase2d or any descendent GuiObjects.
Properties
IsLoaded
This property will be true when the VideoFrame.Video has loaded from Roblox servers and is ready to play.
Looped
This property sets whether or not the VideoFrame.Video repeats once it has finished when it is playing.
Playing
This property indicates whether the VideoFrame.Video is currently playing. It can be set to start or pause playback as an alternative to the VideoFrame:Play() and VideoFrame:Pause() functions.
Resolution
This property gets the original source resolution of the VideoFrame.Video file.
TimeLength
This property indicates the length of the VideoFrame.Video in seconds. If the video is not loaded, this value will be 0.
TimePosition
This property indicates the progress in seconds of the VideoFrame.Video. It can be changed to move the playback position of the video both before and during playback.
Video
The content ID of the video file a VideoFrame object is associated with.
Code Samples
local screenPart = Instance.new("Part")
screenPart.Parent = workspace
local surfaceGui = Instance.new("SurfaceGui")
surfaceGui.Parent = screenPart
local videoFrame = Instance.new("VideoFrame")
videoFrame.Parent = surfaceGui
videoFrame.Looped = true
videoFrame.Video = "rbxassetid://" -- add an asset ID to this
while not videoFrame.IsLoaded do
task.wait()
end
videoFrame:Play()
Volume
This property determines how loud the VideoFrame.Video plays back. It can be set to a number between 0 and 100.
Methods
Pause
Sets VideoFrame.Playing to false, pausing playback if the VideoFrame.Video is playing.
As VideoFrame.TimePosition is not reset, when the video is resumed it will continue from its previous position.
Returns
Play
Sets VideoFrame.Playing to true, This plays the VideoFrame.Video, continuing from the current VideoFrame.TimePosition.
Returns
Code Samples
local screenPart = Instance.new("Part")
screenPart.Parent = workspace
local surfaceGui = Instance.new("SurfaceGui")
surfaceGui.Parent = screenPart
local videoFrame = Instance.new("VideoFrame")
videoFrame.Parent = surfaceGui
videoFrame.Looped = true
videoFrame.Video = "rbxassetid://" -- add an asset ID to this
while not videoFrame.IsLoaded do
task.wait()
end
videoFrame:Play()
Events
DidLoop
An event that fires whenever the VideoFrame.Video loops. Returns the content ID of the video.
Parameters
The content ID of the video that looped.
Ended
This event fires when the VideoFrame.Video has completed playback and stopped.
Parameters
The content ID of the paused that ended.
Loaded
This event fires when the VideoFrame.Video is loaded.
Parameters
The content ID of the loaded video.
Paused
This event fires whenever the VideoFrame.Video is paused using VideoFrame:Pause() or by setting VideoFrame.Playing to false.
Parameters
The content ID of the paused video.
Played
This event fires whenever the VideoFrame.Video is played using the VideoFrame:Play() function or by setting VideoFrame.Playing to true.
Parameters
The content ID of the played video.