GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - rom1v/sndcpy: Android audio forwarding PoC (scrcpy, but for audio)

BranchesTags
Open more actions menu

Latest commit

 

History

17 Commits
17 Commits

Folders and files

NameName
Last commit message
Last commit date
app
app
 
 
gradle/wrapper
gradle/wrapper
 
 
.gitignore
.gitignore
 
 
BUILD.md
BUILD.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
build.gradle
build.gradle
 
 
gradle.properties
gradle.properties
 
 
gradlew
gradlew
 
 
gradlew.bat
gradlew.bat
 
 
release.sh
release.sh
 
 
run
run
 
 
settings.gradle
settings.gradle
 
 
sndcpy
sndcpy
 
 
sndcpy.bat
sndcpy.bat
 
 

Repository files navigation

sndcpy (v1.1)

This tool forwards audio from an Android 10 device to the computer. It does not require any root access. It works on GNU/Linux, Windows and macOS.

The purpose is to enable audio forwarding while mirroring with scrcpy. However, it can be used independently.

Update: scrcpy 2.0 now supports audio forwarding natively.

Note

This application is a proof-of-concept. But as explained below, many apps are restricted and could not forward the audio.

Requirements

  • The Android device requires at least Android 10.
  • VLC must be installed on the computer.

Get the app

Download the latest release:

  • sndcpy-v1.1.zip
    SHA-256: b045320ddddbc5a237d6d95213c664f03b2f46ef8bbfcef91c2d95644ed42bbc
  • sndcpy-with-adb-windows-v1.1.zip
    SHA-256: 0b93c846f574df3f38f53eeee44b1a35b863a49465da8f5cd5b1b69a29305901

On Windows, for simplicity, take the second archive, which also contains adb.

Alternatively, you could build the app.

Run the app

Plug an Android 10 device with USB debugging enabled, and execute:

./sndcpy

If several devices are connected (listed by adb devices):

./sndcpy <serial>  # replace <serial> by the device serial

(omit ./ on Windows)

It will install the app on the device and start forwarding audio.

Press Ctrl+c in the terminal to stop (except on Windows, just disconnect the device or stop capture from the device notifications).

VLC may print this error message once:

main stream error: connection error: Connection refused

It is "expected", just ignore it.

The sound continues to be played on the device. The volume can be adjusted independently on the device and on the computer.

Uninstall

To uninstall the app from the device:

adb uninstall com.rom1v.sndcpy

Apps restrictions

sndcpy may only forward audio from apps which do not prevent audio capture. The rules are detailed in §capture policy:

  • By default, apps that target versions up to and including to Android 9.0 do not permit playback capture. To enable it, include android:allowAudioPlaybackCapture="true" in the app's manifest.xml file.
  • By default, apps that target Android 10 (API level 29) or higher allow their audio to be captured. To disable playback capture, include android:allowAudioPlaybackCapture="false" in the app's manifest.xml file.

So some apps might need to be updated to support audio capture.

Audio delay

This is just a proof-of-concept, so it's far from perfect.

For example, jitter may cause VLC to automatically increase its buffering, causing an unacceptable delay:

main input error: ES_OUT_SET_(GROUP_)PCR  is called too late (pts_delay increased to 377 ms)

In that case, just restart it.

Environment variables

The scripts sndcpy and sndcpy.bat use some default values which can be overridden by environment variables.

  • ADB: the full path to the adb executable
  • VLC: the full path to the vlc executable
  • SNDCPY_APK: the full path to sndcpy.apk
  • SNDCPY_PORT: the local port to forward to communicate with the device

Blog post

  • Audio forwarding on Android 10

About

Android audio forwarding PoC (scrcpy, but for audio)

Topics

androidaudiomirroringscrcpy

Resources

Readme
MIT license
Activity

Stars

3.6k stars

Watchers

53 watching

Forks

326 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.