Audio out API

The audio out API supports the following methods:

Method NameDescription
PlayPlay the given audio data.
GetPropertiesGet the audio device’s properties.
GetGeometriesGet all the geometries associated with the audio out component in its current configuration, in the frame of the audio out component.
ReconfigureReconfigure this resource.
DoCommandExecute model-specific commands that are not otherwise defined by the component API.
GetResourceNameGet the ResourceName for this audio out component.
CloseSafely shut down the resource and prevent further use.

API

Play

Play the given audio data.

Parameters:

  • data (bytes) (required): audio bytes to play.
  • info (viam.components.audio_out.audio_out.AudioInfo) (optional): (optional) information about the audio data such as codec, sample rate, and channel count.
  • extra (Mapping[str, Any]) (optional): Extra options to pass to the underlying RPC call.
  • timeout (float) (optional): An option to set how long to wait (in seconds) before calling a time-out and closing the underlying RPC call.

Returns:

  • None.

For more information, see the Python SDK Docs.

Parameters:

Returns:

  • (error): An error, if one occurred.

For more information, see the Go SDK Docs.

Parameters:

  • audioData (Uint8Array) (required): The audio data to play.
  • audioInfo (AudioInfo) (optional): Information about the audio format (optional, required for raw pcm data).
  • extra (None) (optional)
  • callOptions (CallOptions) (optional)

Returns:

  • (Promise)

Example:

const audioOut = new VIAM.AudioOutClient(machine, 'my_audio_out');
const audioData = new Uint8Array([...]); // Your audio data
const audioInfo = { codec: 'pcm16', sampleRateHz: 48000, numChannels: 2 };
await audioOut.play(audioData, audioInfo);

For more information, see the TypeScript SDK Docs.

GetProperties

Get the audio device’s properties.

Parameters:

  • extra (Mapping[str, Any]) (optional): Extra options to pass to the underlying RPC call.
  • timeout (float) (optional): An option to set how long to wait (in seconds) before calling a time-out and closing the underlying RPC call.

Returns:

  • (viam.components.audio_out.audio_out.AudioOut.Properties): The properties of the audio output device.

For more information, see the Python SDK Docs.

Parameters:

  • callOptions (CallOptions) (optional)

Returns:

  • (Promise< { numChannels: number; sampleRateHz: number; supportedCodecs: string[] },>)

Example:

const audioOut = new VIAM.AudioOutClient(machine, 'my_audio_out');
const properties = await audioOut.getProperties();

For more information, see the TypeScript SDK Docs.

GetGeometries

Get all the geometries associated with the audio out component in its current configuration, in the frame of the audio out component. The motion and navigation services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning.

Parameters:

  • extra (Mapping[str, Any]) (optional): Extra options to pass to the underlying RPC call.
  • timeout (float) (optional): An option to set how long to wait (in seconds) before calling a time-out and closing the underlying RPC call.

Returns:

Example:

my_audio_out = AudioOut.from_robot(robot=machine, name="my_audio_out")
geometries = await my_audio_out.get_geometries()

if geometries:
    # Get the center of the first geometry
    print(f"Pose of the first geometry's centerpoint: {geometries[0].center}")

For more information, see the Python SDK Docs.

Reconfigure

Reconfigure this resource. Reconfigure must reconfigure the resource atomically and in place.

Parameters:

  • ctx (Context): A Context carries a deadline, a cancellation signal, and other values across API boundaries.
  • deps (Dependencies): The resource dependencies.
  • conf (Config): The resource configuration.

Returns:

  • (error): An error, if one occurred.

For more information, see the Go SDK Docs.

DoCommand

Execute model-specific commands that are not otherwise defined by the component API. Most models do not implement DoCommand. Any available model-specific commands should be covered in the model’s documentation. If you are implementing your own arm and want to add features that have no corresponding built-in API method, you can implement them with DoCommand.

Parameters:

  • command (Mapping[str, ValueTypes]) (required): The command to execute.
  • timeout (float) (optional): An option to set how long to wait (in seconds) before calling a time-out and closing the underlying RPC call.

Returns:

  • (Mapping[str, viam.utils.ValueTypes]): Result of the executed command.

Raises:

  • (NotImplementedError): Raised if the Resource does not support arbitrary commands.

Example:

my_audio_out = AudioOut.from_robot(robot=machine, name="my_audio_out")
command = {"cmd": "test", "data1": 500}
result = await my_audio_out.do_command(command)

For more information, see the Python SDK Docs.

Parameters:

Returns:

Example:

myAudioOut, err := audio_out.FromProvider(machine, "my_audio_out")

command := map[string]interface{}{"cmd": "test", "data1": 500}
result, err := myAudioOut.DoCommand(context.Background(), command)

For more information, see the Go SDK Docs.

Parameters:

  • command (Struct) (required): The command to execute.
  • callOptions (CallOptions) (optional)

Returns:

Example:

import { Struct } from '@viamrobotics/sdk';

const result = await resource.doCommand(
  Struct.fromJson({
    myCommand: { key: 'value' },
  })
);

For more information, see the TypeScript SDK Docs.

GetResourceName

Get the ResourceName for this audio out component.

Parameters:

  • name (str) (required): The name of the Resource.

Returns:

Example:

my_audio_out_name = AudioOut.get_resource_name("my_audio_out")

For more information, see the Python SDK Docs.

Parameters:

  • None.

Returns:

Example:

myAudioOut, err := audioout.FromProvider(machine, "my_audio_out")

err = myAudioOut.Name()

For more information, see the Go SDK Docs.

Parameters:

  • None.

Returns:

  • (string): The name of the resource.

Example:

audio_out.name

For more information, see the TypeScript SDK Docs.

Close

Safely shut down the resource and prevent further use.

Parameters:

  • None.

Returns:

  • None.

Example:

my_audio_out = AudioOut.from_robot(robot=machine, name="my_audio_out")
await my_audio_out.close()

For more information, see the Python SDK Docs.

Parameters:

  • ctx (Context): A Context carries a deadline, a cancellation signal, and other values across API boundaries.

Returns:

  • (error): An error, if one occurred.

Example:

myAudioOut, err := audioout.FromProvider(machine, "my_audio_out")

err = myAudioOut.Close(context.Background())

For more information, see the Go SDK Docs.