RelayCall

play_audio

View as MarkdownOpen in Claude

Play an audio file from a URL. A typed convenience over play() that builds the {"type": "audio", "params": {"url": ...}} media item for you.

Parameters

url
strRequired

URL of the audio file to play.

volume
float | NoneDefaults to None

Volume adjustment in dB, from -40.0 to 40.0. Keyword-only.

on_completed
Callable[[RelayEvent], Any] | NoneDefaults to None

Callback invoked when the operation reaches a terminal state. Can be a regular function or async coroutine. Keyword-only.

Returns

PlayAction — An action handle with stop(), pause(), resume(), volume(), and wait() methods.

Example

from signalwire.relay import RelayClient
client = RelayClient(
project="your-project-id",
token="your-api-token",
contexts=["default"],
)
@client.on_call
async def handle_call(call):
await call.answer()
action = await call.play_audio("https://example.com/hold-music.mp3", volume=-6.0)
await action.wait()
client.run()