# AudioRecorder

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: Internal
- HTML page: https://rapi.sleaze.dev/classes/AudioRecorder/
- Roblox documentation: https://create.roblox.com/docs/reference/engine/classes/AudioRecorder

Records audio streams in-experience.

## Properties

### TimeLength

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

- Tags: Read only, Read capabilities: Audio, Save only

The current length of the recording in seconds.

### IsRecording

```luau
AudioRecorder.IsRecording: boolean = false
```

- Tags: Write: Roblox engine security, Read capabilities: Audio

Whether the [`AudioRecorder`](https://rapi.sleaze.dev/classes/AudioRecorder.md) is currently recording.

## Methods

### CanRecordAsync

```luau
AudioRecorder:CanRecordAsync(): boolean
```

- Tags: Yields, Capabilities: Audio

Returns whether the [`AudioRecorder`](https://rapi.sleaze.dev/classes/AudioRecorder.md) can currently record.

Returns: `true` if recording is possible, `false` otherwise.

### Clear

```luau
AudioRecorder:Clear()
```

- Tags: Capabilities: Audio

Clears out the recording from the [`AudioRecorder`](https://rapi.sleaze.dev/classes/AudioRecorder.md).

### GetConnectedWires

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

- Tags: Capabilities: Audio

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
AudioRecorder:GetInputPins(): { any }
```

- Tags: Capabilities: Audio

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
AudioRecorder:GetOutputPins(): { any }
```

- Tags: Capabilities: Audio

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.

### GetTemporaryContent

```luau
AudioRecorder:GetTemporaryContent(): Content
```

- Tags: Capabilities: Audio

Returns a [`Content`](https://rapi.sleaze.dev/index/types/Content.md) object representing the current audio recording.

Returns: A temporary [`Content`](https://rapi.sleaze.dev/index/types/Content.md) ID that can be used with [`AudioPlayer`](https://rapi.sleaze.dev/classes/AudioPlayer.md).

### GetUnrecordableInstancesAsync

```luau
AudioRecorder:GetUnrecordableInstancesAsync(): { Instance }
```

- Tags: Yields, Capabilities: Audio

Returns any instances which cannot be recorded.

Returns: A table of [`Instances`](https://rapi.sleaze.dev/index/types/Instances.md) that are not recordable.

### RecordAsync

```luau
AudioRecorder:RecordAsync()
```

- Tags: Yields, Capabilities: Audio

Starts recording audio.

### Stop

```luau
AudioRecorder:Stop()
```

- Tags: Capabilities: Audio

Stops recording audio.

## Events

### WiringChanged

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

- Tags: Capabilities: Audio

Fires when another instance is connected to or disconnected from the [`AudioRecorder`](https://rapi.sleaze.dev/classes/AudioRecorder.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`
