← back to blog

cloud phone audio not working: full troubleshooting guide

May 06, 2026

cloud phone audio not working is a confusing problem because audio paths through cloud phones are more complex than display paths. scrcpy mirrors the screen by default but does not always mirror audio. apps that rely on audio for verification (voice calls, video calls, audio captcha) often fail without obvious reason. this guide walks through the symptoms, causes, and fixes.

the symptoms: what audio failure actually looks like

before diagnosing, identify which audio symptom you are seeing.

each has different causes. start by being specific.

step 1: confirm scrcpy is set up for audio

scrcpy added audio forwarding in version 2.0 (released 2023). older versions do not forward audio at all.

check your version:

scrcpy --version

if you are below 2.0, update. on macOS: brew upgrade scrcpy. on debian: apt install scrcpy (may need backports for newer version). on windows: download fresh build from scrcpy releases.

after updating, run scrcpy with explicit audio:

scrcpy --audio-codec=opus

if audio still does not work, the issue is phone-side or path-side, not scrcpy.

step 2: check phone-side audio configuration

cloud phones sometimes have audio muted at the system level by default to save bandwidth in shared environments.

diagnostic:

adb shell dumpsys audio | head -30

look for “Stream volumes” lines. all should be non-zero for the streams you care about (typically STREAM_MUSIC, STREAM_VOICE_CALL, STREAM_NOTIFICATION).

fix steps:

  1. unmute via ADB: adb shell input keyevent 24 (volume up, repeat to raise)
  2. set explicit volume: adb shell media volume --stream 3 --set 15 (where stream 3 is music)
  3. check do-not-disturb is not enabled: adb shell settings get global zen_mode (should be 0)
  4. verify ringer mode: adb shell settings get global mode_ringer (1 = normal, 0 = silent, 2 = vibrate)

verify: adb shell dumpsys audio | grep -A1 "Stream volumes" shows non-zero values.

step 3: check audio routing

android can route audio to several outputs (speaker, headphone, bluetooth, USB audio). cloud phones may route incorrectly.

diagnostic:

adb shell dumpsys audio | grep "Active audio devices"

you want to see “speaker” listed for output. if it shows something else (like a stale Bluetooth device that does not exist), audio is being routed nowhere.

fix steps:

  1. force speaker output: adb shell input keyevent KEYCODE_HEADSETHOOK once or twice
  2. unpair stale Bluetooth devices: adb shell cmd bluetooth_manager disable && adb shell cmd bluetooth_manager enable
  3. reset audio routing: adb shell setenforce 0; adb shell killall audioserver
  4. reboot phone if routing persists incorrectly: adb reboot

verify: scrcpy with --audio-codec=opus produces audio output.

step 4: troubleshoot mic input

if you need microphone input on the cloud phone (for voice apps, calls, audio capture), the path is different from output.

most cloud phones do not have a physical microphone. they typically simulate one via a software loopback, file-based input, or by accepting audio injected over ADB.

check what your provider supports:

if your provider does not support mic input at all, that is a fundamental limit. you cannot fix it locally.

OWASP MAS testing covers some workarounds for audio-dependent app testing.

step 5: app-specific audio issues

some apps detect cloud phones (or simulated audio environments) and behave differently.

common patterns:

fixes:

  1. test with multiple apps to confirm whether it is app-specific or universal
  2. check if your provider has a “real audio” tier with hardware audio support
  3. for testing-only workflows, consider mocking audio rather than expecting real audio to work
  4. for production workflows that need real audio, you may need a different vendor or a physical phone

numbered fix steps for common scenarios

scenario A: scrcpy shows video but no audio

likely cause: scrcpy version below 2.0, or audio codec not specified.

fix: 1. scrcpy --version to check 2. update to 2.0 or above 3. run scrcpy --audio-codec=opus 4. confirm in audio output (laptop speakers should produce sound)

verify: hear audio in scrcpy that matches the phone’s audio output.

scenario B: audio works in scrcpy but app says no audio

likely cause: phone audio routing or permissions.

fix: 1. check app’s audio permission: adb shell dumpsys package <package> | grep audio 2. grant if missing: adb shell pm grant <package> android.permission.RECORD_AUDIO 3. check audio routing as in step 3 above 4. force-restart the app

verify: app’s audio features work as expected.

scenario C: audio works initially then stops

likely cause: audio service crash or session timeout.

fix: 1. restart audio server: adb shell killall audioserver 2. check kernel logs: adb shell dmesg | grep -i audio 3. reboot phone if audio service keeps dying 4. open vendor support ticket if it persists across reboots

verify: audio holds for full work session.

scenario D: mic input does not work on the phone

likely cause: phone does not support physical mic (most cloud phones do not).

fix: 1. confirm with provider whether mic input is supported 2. if supported, follow vendor docs for enabling 3. if not supported, choose a different vendor or use a physical phone for mic-required workflows

verify: mic-dependent apps work or you have a clear path forward.

the codec angle

audio codecs matter for cloud phone audio quality and compatibility.

cloud phone audio is typically delivered via:

if you have audio quality issues, switch codec:

bandwidth considerations

audio adds bandwidth on top of video. typical numbers:

if you are on a constrained network, audio can be the difference between smooth and stuttering. balance accordingly.

cloud phone slow performance fix covers related bandwidth diagnostics.

prevention: setup choices that ensure audio works

things to do upfront:

when to escalate

escalate to vendor support when:

include in the ticket: scrcpy version, ADB output of dumpsys audio, app you are trying to use, expected vs actual behavior.

external resources

Android audio architecture documentation from AOSP covers the underlying audio subsystem. useful for understanding why some routing issues happen.

the soft pitch

cloudf.one supports audio forwarding via scrcpy 2.0+ and provides documented audio configuration in the dashboard. start with a free 1-hour trial to test audio in your specific workflow before committing. start at cloudf.one/trial or register an account.

frequently asked questions

why is my cloud phone audio silent in scrcpy?

usually scrcpy version below 2.0 or audio codec not specified. update scrcpy and run with --audio-codec=opus.

can cloud phones receive microphone input from my laptop?

depends on the vendor. most do not by default. check vendor docs before relying on mic input for your workflow.

is audio quality the same on cloud phones as physical phones?

usually yes for output. mic input is often simulated and may not match physical phone behavior.

does audio forwarding add a lot of latency?

opus codec adds 20-40ms typically. acceptable for most workflows but noticeable for real-time voice apps.

why does only one specific app have no audio on my cloud phone?

usually app-side audio permissions or audio API the app uses that does not work in cloud environments. check app permissions and consider reporting to the app developer.