> ISPO SDK documentation. [HTML](https://ispo.ai/docs/interfaces/core.SystemAudioApi.html) · [Documentation index](https://ispo.ai/docs/llms.txt)

# Interface SystemAudioApi

```typescript
interface SystemAudioApi {
    current(): Promise<SystemAudioOwnedSession | null>;
    read(
        input: SystemAudioReadInput,
    ): Promise<Uint8Array<ArrayBufferLike> | null>;
    start(input: SystemAudioStartInput): Promise<SystemAudioSessionDescriptor>;
    stop(input: SystemAudioStopInput): Promise<SystemAudioOwnedSession>;
}
```

Types: [current](#current-1), [SystemAudioOwnedSession](../types/core.SystemAudioOwnedSession.md), [read](#read-1), [SystemAudioReadInput](core.SystemAudioReadInput.md), [start](#start-1), [SystemAudioStartInput](core.SystemAudioStartInput.md), [SystemAudioSessionDescriptor](core.SystemAudioSessionDescriptor.md), [stop](#stop-1), [SystemAudioStopInput](core.SystemAudioStopInput.md)

##### Index

### <a id="methods"></a>Methods

[current](#current) [read](#read) [start](#start) [stop](#stop)

## <a id="methods-1"></a>Methods

### <a id="current"></a>current

*   <a id="current-1"></a>
    
    ```typescript
    current(): Promise<SystemAudioOwnedSession | null>
    ```
    
    Types: [SystemAudioOwnedSession](../types/core.SystemAudioOwnedSession.md)
    
    Returns only this project's current or most recently stopped session.
    
    #### Returns Promise<[SystemAudioOwnedSession](../types/core.SystemAudioOwnedSession.md) | null\>
    

**Authority for `systemAudio.current`**

Reviewed request token: `ui.system-audio`. No static standing capability. Resource bindings, identity checks, or interactive consent may still apply.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).

### <a id="read"></a>read

*   <a id="read-1"></a>
    
    ```typescript
    read(input: SystemAudioReadInput): Promise<Uint8Array<ArrayBufferLike> | null>
    ```
    
    Types: [SystemAudioReadInput](core.SystemAudioReadInput.md)
    
    Reads the next encoded WebM/Opus chunk, or null when no chunk is available.
    
    #### Parameters
    
    *   input: [SystemAudioReadInput](core.SystemAudioReadInput.md)
    
    #### Returns Promise<Uint8Array<ArrayBufferLike\> | null\>
    

**Authority for `systemAudio.read`**

Reviewed request token: `ui.system-audio`. No static standing capability. Resource bindings, identity checks, or interactive consent may still apply.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).

### <a id="start"></a>start

*   <a id="start-1"></a>
    
    ```typescript
    start(input: SystemAudioStartInput): Promise<SystemAudioSessionDescriptor>
    ```
    
    Types: [SystemAudioStartInput](core.SystemAudioStartInput.md), [SystemAudioSessionDescriptor](core.SystemAudioSessionDescriptor.md)
    
    Starts host-owned capture after a fresh, nonremembered user confirmation.
    
    #### Parameters
    
    *   input: [SystemAudioStartInput](core.SystemAudioStartInput.md)
    
    #### Returns Promise<[SystemAudioSessionDescriptor](core.SystemAudioSessionDescriptor.md)\>
    

**Authority for `systemAudio.start`**

Reviewed request token: `ui.system-audio`. No static standing capability. Resource bindings, identity checks, or interactive consent may still apply.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).

### <a id="stop"></a>stop

*   <a id="stop-1"></a>
    
    ```typescript
    stop(input: SystemAudioStopInput): Promise<SystemAudioOwnedSession>
    ```
    
    Types: [SystemAudioStopInput](core.SystemAudioStopInput.md), [SystemAudioOwnedSession](../types/core.SystemAudioOwnedSession.md)
    
    Stops and finalizes this project's exact capture session.
    
    #### Parameters
    
    *   input: [SystemAudioStopInput](core.SystemAudioStopInput.md)
    
    #### Returns Promise<[SystemAudioOwnedSession](../types/core.SystemAudioOwnedSession.md)\>
    

**Authority for `systemAudio.stop`**

No static request token. No static standing capability. Resource bindings, identity checks, or interactive consent may still apply.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).
