Documentation

​
​

Development

User Acquisition

Monetization

Industry

Vivox Core SDK

Vivox Core SDK

Vivox
​
​
Vivox Core SDK
  • Overview
  • Before you begin
  • Get started
  • Release notes
  • Developer Guide
    • Client SDK basics
    • Channels
      • Channel name criteria
      • Channel types
      • Echo channels
      • Positional channels
      • Volume differences
      • Channel identifiers for large scale games
      • Participant events
      • Channel webhooks
      • Join a channel
      • Leave a channel
      • Kick a user from a channel
      • Manage session groups
      • Audio injection
      • Methods for setting audio levels
      • Derumbler
      • Automatic connection recovery
    • Presence management
    • Messaging
    • Manage audio
    • Couch co-op
    • Android app development
    • iOS app development
    • macOS app development
    • Windows app development
    • Real-time recording
    • Speech-to-text audio transcription
    • Text-to-speech
    • Troubleshooting
  • Reference
  • Privacy overview
  1. Vivox Core SDK documentation

Audio injection

Broadcast audio from a file to all connected channels.
Read time 3 minutes
Last updated 8 months ago

Note
There is a known issue with the Vivox SDK in which the local playback of the injected audio only occurs if the file also has the same sample rate as the negotiated audio codec. Other players always hear the file correctly, regardless of the sample rate. For Windows, this usually is 48kHz.
Audio injection allows you to broadcast audio from a file to all connected sessions in a single session group. Injected audio is treated like a second capture device you are speaking into. This means that muting or disconnecting your input device does not stop others from hearing the file audio. However, muting yourself in a channel, stopping transmission to a channel, or disconnecting a channel's media stream does stop others from hearing the file audio. Because the played file is treated as speech, it will beheard by anyone that would typically hear the user. It also triggers speaking indicators and VU meters like speech does, and is heard by participants in accordance with the player's position and orientation in a 3D channel, or when in a 2D channel, from anywhere on the map.
Use cases for this feature include a player selecting pre-scripted audio clips in their character's voice saying things like "Enemy spotted!" or "Need healing!" to signal their situation, which is especially useful when the player does not have a microphone. Depending on your application, it might also be appropriate to let the user play music into the channel for everyone to listen to. When the file being injected ends, the
vx_evt_media_completion
event will trigger, you can use it to loop an audio track when complete or move to the next track in a playlist.
You can broadcast only one file at a time. Successfully completed
vx_req_sessiongroup_control_audio_injection
requests with a "start" control type will play the specified file from the beginning only if no file is already playing; a "restart" control type always begins playing the specified file from the beginning and replaces any file that was previously playing. You can stop file audio from playing at any time by making the request with a "stop" control type. Note that injecting file audio does not replace or otherwise prevent the user from speaking into their capture device and being heard as normal; it is considered to be an additional audio source.
The file also plays locally for the user while it is being transmitted to others to simulate the experience of file injection as a second spoken audio source. This means that a user playing a file into a non-positional or a positional channel hears the file slightly earlier than other participants, just like their own voice when speaking. The file plays with an echo in an echo channel, just like your own voice.
Warning
Audio files broadcast with this feature must have a .wav extension and contain single channel, 16-bit PCM audio. Otherwise, the
vx_resp_sessiongroup_control_audio_injection
response returns VxErrorInvalidFormat, and the file does not play.

Copyright © 2026 Unity Technologies
LegalPrivacy PolicyCookiesDocumentation Terms of UseDo Not Sell or Share My Personal InformationYour Privacy Choices (Cookie Settings)

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S and elsewhere (more info here). Other names or brands are trademarks of their respective owners.

Some pages are machine-translated for convenience, and may contain inaccuracies. In the event of conflicting information, the English version is authoritative.


    Report a problem with this page