# VideoPlayer

Roblox Engine API class from Roblox Studio 0.744.0.7441077 (version-7aaa6838d36c4448).

- Inherits from, nearest first: [Instance](https://rapi.sleaze.dev/classes/Instance.md), [Object](https://rapi.sleaze.dev/classes/Object.md)
- Tags: Not browsable
- Memory category: Instances
- HTML page: https://rapi.sleaze.dev/classes/VideoPlayer/
- Roblox documentation: https://create.roblox.com/docs/reference/engine/classes/VideoPlayer

Used to play video assets.

## Properties

### IsLoaded

```luau
VideoPlayer.IsLoaded: boolean = false
```

- Tags: Read only, Capabilities: Audio + UI

Indicates when the [`VideoContent`](https://rapi.sleaze.dev/classes/VideoPlayer.md) has loaded and is ready to play.

### Resolution

```luau
VideoPlayer.Resolution: Vector2 = Vector2.zero
```

- Tags: Read only, Capabilities: Audio + UI

Gets the original source resolution of the [`VideoContent`](https://rapi.sleaze.dev/classes/VideoPlayer.md) file.

### TimeLength

```luau
VideoPlayer.TimeLength: number = 0
```

- Tags: Read only, Capabilities: Audio + UI

Indicates the length of the [`VideoContent`](https://rapi.sleaze.dev/classes/VideoPlayer.md) in seconds.

### VideoContent

```luau
VideoPlayer.VideoContent: Content
```

- Tags: Capabilities: Audio + UI

The asset to be loaded into the [`VideoPlayer`](https://rapi.sleaze.dev/classes/VideoPlayer.md).

### AutoLoadInStudio

```luau
VideoPlayer.AutoLoadInStudio: boolean = false
```

- Tags: Not replicated, Not scriptable, Write: Roblox script security, Read capabilities: Audio + UI

Loads the [`VideoContent`](https://rapi.sleaze.dev/classes/VideoPlayer.md) while in Studio Edit mode.

### AutoPlayInStudio

```luau
VideoPlayer.AutoPlayInStudio: boolean = false
```

- Tags: Not replicated, Not scriptable, Write: Roblox script security, Read capabilities: Audio + UI

Plays the [`VideoContent`](https://rapi.sleaze.dev/classes/VideoPlayer.md) while in Studio Edit mode.

### InternalVideoUsage

```luau
VideoPlayer.InternalVideoUsage: Enum.InternalVideoUsage = Enum.InternalVideoUsage.Default
```

- Tags: Hidden, Read capabilities: Audio + InternalTest + UI, Write capabilities: InternalTest

### IsPlaying

```luau
VideoPlayer.IsPlaying: boolean = false
```

- Tags: Read only, Capabilities: Audio + UI

Denotes whether this [`VideoPlayer`](https://rapi.sleaze.dev/classes/VideoPlayer.md) is currently playing.

### Looping

```luau
VideoPlayer.Looping: boolean = false
```

- Tags: Capabilities: Audio + UI

Controls whether this [`VideoPlayer`](https://rapi.sleaze.dev/classes/VideoPlayer.md) loops.

### MaximumResolution

```luau
VideoPlayer.MaximumResolution: Enum.VideoSampleSize = Enum.VideoSampleSize.Full
```

- Tags: Hidden, Read capabilities: Audio + InternalTest + UI, Write capabilities: InternalTest

Caps the resolution of decoded video frames for this [`VideoPlayer`](https://rapi.sleaze.dev/classes/VideoPlayer.md).

### PlaybackSpeed

```luau
VideoPlayer.PlaybackSpeed: number = 1
```

- Tags: Capabilities: Audio + UI

Controls the speed at which the video is played.

### PlayingReplicating

```luau
VideoPlayer.PlayingReplicating: boolean = false
```

- Tags: Hidden, Not scriptable, Capabilities: Audio + UI

### TimePosition

```luau
VideoPlayer.TimePosition: number = 0
```

- Tags: Capabilities: Audio + UI

Indicates the progress in seconds of the [`VideoContent`](https://rapi.sleaze.dev/classes/VideoPlayer.md).

### Volume

```luau
VideoPlayer.Volume: number = 1
```

- Tags: Capabilities: Audio + UI

Controls how loudly the audio track will be played.

## Methods

### GetConnectedWires

```luau
VideoPlayer:GetConnectedWires(pin: string): { Instance }
```

- Tags: Capabilities: Audio + UI

Returns an array of `Wires` that are connected to the specified pin.

Parameters:

- `pin`: An input or output pin on this instance

Returns: An array of `Wires`

### GetInputPins

```luau
VideoPlayer:GetInputPins(): { any }
```

- Tags: Capabilities: Audio + UI

Gets the list of pins that [`Wire`](https://rapi.sleaze.dev/classes/Wire.md) can use in [`Wire.TargetName`](https://rapi.sleaze.dev/classes/Wire.md) to connect to this instance via its [`Wire.TargetInstance`](https://rapi.sleaze.dev/classes/Wire.md) property.

Returns: An array of strings representing valid pin names.

### GetOutputPins

```luau
VideoPlayer:GetOutputPins(): { any }
```

- Tags: Capabilities: Audio + UI

Gets the list of pins that [`Wire`](https://rapi.sleaze.dev/classes/Wire.md) can use in [`Wire.SourceName`](https://rapi.sleaze.dev/classes/Wire.md) to connect to this instance via its [`Wire.SourceInstance`](https://rapi.sleaze.dev/classes/Wire.md) property.

Returns: An array of strings representing valid pin names.

### LoadAsync

```luau
VideoPlayer:LoadAsync(): Enum.AssetFetchStatus
```

- Tags: Yields, Capabilities: Audio + UI

Loads the [`VideoContent`](https://rapi.sleaze.dev/classes/VideoPlayer.md) before it is played.

Returns: An `AssetFetchStatus` describing the outcome of the load — `AssetFetchStatus.Success` once the [`VideoContent`](https://rapi.sleaze.dev/classes/VideoPlayer.md) has loaded, or a failure status such as `AssetFetchStatus.Failure` or `AssetFetchStatus.TimedOut` if it could not be fetched.

### Pause

```luau
VideoPlayer:Pause()
```

- Tags: Capabilities: Audio + UI

Pauses the [`VideoPlayer`](https://rapi.sleaze.dev/classes/VideoPlayer.md) wherever its [`TimePosition`](https://rapi.sleaze.dev/classes/VideoPlayer.md) is.

### Play

```luau
VideoPlayer:Play()
```

- Tags: Capabilities: Audio + UI

Plays the [`VideoPlayer`](https://rapi.sleaze.dev/classes/VideoPlayer.md) from wherever its [`TimePosition`](https://rapi.sleaze.dev/classes/VideoPlayer.md) is.

### SetStudioPreview

```luau
VideoPlayer:SetStudioPreview(isPreview: boolean)
```

- Tags: Roblox script security, Capabilities: Audio + UI

### Unload

```luau
VideoPlayer:Unload()
```

- Tags: Capabilities: Audio + UI

Unloads the [`VideoPlayer.VideoContent`](https://rapi.sleaze.dev/classes/VideoPlayer.md) to save resources.

## Events

### DidEnd

```luau
VideoPlayer.DidEnd: RBXScriptSignal<()>
```

- Tags: Capabilities: Audio + UI

Fires when the [`VideoContent`](https://rapi.sleaze.dev/classes/VideoPlayer.md) has completed playback and stopped.

### DidLoop

```luau
VideoPlayer.DidLoop: RBXScriptSignal<()>
```

- Tags: Capabilities: Audio + UI

Fires when the [`VideoContent`](https://rapi.sleaze.dev/classes/VideoPlayer.md) loops.

### PlayFailed

```luau
VideoPlayer.PlayFailed: RBXScriptSignal<(error: Enum.AssetFetchStatus)>
```

- Tags: Capabilities: Audio + UI

Fires when the [`VideoPlayer`](https://rapi.sleaze.dev/classes/VideoPlayer.md) fails to load or play its [`VideoContent`](https://rapi.sleaze.dev/classes/VideoPlayer.md).

### WiringChanged

```luau
VideoPlayer.WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance)>
```

- Tags: Capabilities: Audio + UI

Fires when another instance is connected to or disconnected from the [`VideoPlayer`](https://rapi.sleaze.dev/classes/VideoPlayer.md) via a [`Wire`](https://rapi.sleaze.dev/classes/Wire.md).

## Inherited members

- From [Instance](https://rapi.sleaze.dev/classes/Instance.md): `Archivable`, `archivable`, `Attributes`, `AttributesReplicate`, `AttributesSerialize`, `HistoryId`, `Name`, `Parent`, `PredictionMode`, `PropertyStatusStudio`, `RobloxLocked`, `SerializedOverrides`, `SourceAssetId`, `Tags`, `UniqueId`, `numExpectedDirectChildren`, `DataCost`, `Capabilities`, `DefinesCapabilities`, `IsInSandbox`, `Sandboxed`, `AddTag`, `ClearAllChildren`, `Clone`, `Destroy`, `FindFirstAncestor`, `FindFirstAncestorOfClass`, `FindFirstAncestorWhichIsA`, `FindFirstChild`, `FindFirstChildOfClass`, `FindFirstChildWhichIsA`, `FindFirstDescendant`, `GetActor`, `GetAttribute`, `GetAttributeChangedSignal`, `GetAttributes`, `GetChildren`, `GetDebugId`, `GetDescendants`, `GetFullName`, `GetStyled`, `GetStyledPropertyChangedSignal`, `GetTags`, `HasTag`, `IsAncestorOf`, `IsDescendantOf`, `IsPropertyModified`, `QueryDescendants`, `RemoveTag`, `ResetPropertyToDefault`, `SetAttribute`, `WaitForChild`, `Remove`, `children`, `clone`, `destroy`, `findFirstChild`, `getChildren`, `isDescendantOf`, `remove`, `AncestryChanged`, `AttributeChanged`, `ChildAdded`, `ChildRemoved`, `DescendantAdded`, `DescendantRemoving`, `Destroying`, `StyledPropertiesChanged`, `childAdded`
- From [Object](https://rapi.sleaze.dev/classes/Object.md): `ClassName`, `className`, `GetPropertyChangedSignal`, `IsA`, `isA`, `Changed`
