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
    • Presence management
    • Messaging
    • Manage audio
    • Couch co-op
    • Android app development
      • Bluetooth profile management
      • Android SDK permission requirements
      • Android library requirements
      • Initialize Vivox Android services
      • Android speakerphone audio: Mono or stereo
      • Update the ProGuard rule file
      • Smart Platform Audio Management
      • Acoustic echo cancellation
      • Disable the Vivox SDK internal AEC
      • Hardware echo cancellation
      • Absolute paths for native libraries
      • Reduce Opus CPU load on low-powered Android devices
    • 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
  2. Android app development

Smart Platform Audio Management

Understand how SPAM optimizes audio configurations.
Read time 2 minutes
Last updated 8 months ago

The Vivox SDK uses Smart Platform Audio Management (SPAM) to automatically select the optimal Android audio configuration based on the context.
Note
Smart Platform Audio Management was known as dynamic voice processing switching (DVPS) in earlier Vivox SDK releases.
SPAM will optimize the audio configuration for voice if both of the following scenarios occur:
  • The client attempts to access the microphone (for example, when in a session)
  • The audio is rendered through the built-in speakerphone, or Bluetooth SCO
In all other scenarios, SPAM will optimize the audio configuration for general-purpose audio.
SPAM configuration includes:
  • The Android AudioManager mode
    • When optimizing for voice, this is set to
      MODE_IN_COMMUNICATION
      .
    • When optimizing for general-purpose audio, this is set to
      MODE_NORMAL
      .
  • The OpenSL ES render stream and recording preset
    • In voice mode, the render stream is set to
      SL_ANDROID_STREAM_VOICE
      and the recording preset is set to
      SL_ANDROID_RECORDING_PRESET_VOICE_COMMUNICATION
      .
    • For general-purpose audio, the render stream is set to
      SL_ANDROID_STREAM_MEDIA
      and the recording preset is set to
      SL_ANDROID_RECORDING_PRESET_VOICE_RECOGNITION
      .
  • The Bluetooth profile
    • In voice mode, when using an audio Bluetooth device, SPAM will use Bluetooth SCO by default, if available. This ensures that the microphone on the Bluetooth device is used to provide the best voice experience for Vivox users.
    • When leaving voice mode, SPAM will automatically switch to A2DP and prioritize render audio quality over voice experience. This is configurable; you can change SPAM to always use A2DP by setting the
      bluetooth_profile
      parameter on the SDK config struct.
SPAM also ensures that audio interruptions, such as phone calls, are handled correctly and that Vivox recovers gracefully when the interruption ends. This includes routing to the active audio device and setting up the audio configuration as described earlier in this section.
SPAM is enabled by default. To disable SPAM, perform either of the following actions:
Warning
Disabling SPAM is not recommended.
  • When you initialize the Vivox SDK, configure the
    dynamic_voice_processing_switching
    parameter.
  • After the you initialize the Vivox SDK, call
    vx_set_dynamic_voice_processing_switching_enabled()
    .

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