Git Product home page Git Product logo

audiosource's Introduction

Audio Source

Audio Source forwards Android microphone audio input to the PulseAudio daemon through ADB, so you can use your Android device as a USB microphone.

screenshot

Requirements

  • Device with at least Android 4.0 (API level 14), but fully tested only on Android 10 (API level 29) so your mileage may vary.
  • GNU/Linux machine with:
    • Android SDK Platform Tools (requires adb in PATH).
    • PulseAudio (requires pactl in PATH).
    • Python 3 (requires python3 in PATH).

Usage

  1. Install the Audio Source APK by following the build instructions, or from the releases.
  2. Enable Android Debug Bridge (ADB) from the Developer options and connect the device to your computer.
  3. Run ./audiosource run to start Audio Source and forward the audio automatically. (You may have to grant the permission to record audio in Android.)
  4. Run ./audiosource volume LEVEL, to set the PulseAudio source volume to LEVEL, for instance 200% (you will likely need to set the volume higher than 100%).

Build and install

Run ./gradlew tasks to list the available commands.

Debug

$ ./audiosource build
$ ./audiosource install

Release

  1. Generate a Java KeyStore:

    $ keytool -keystore /home/user/android.jks -genkey -alias release \
           -keyalg RSA -keysize 2048 -validity 30000
  2. Create keystore.properties in the project root directory containing:

    storeFile=/home/user/android.jks
    storePassword=STORE_PASS
    keyAlias=release
    keyPassword=KEY_PASS
    
  3. Build and install:

    $ export AUDIOSOURCE_PROFILE=release
    $ ./audiosource build
    $ ./audiosource install

Acknowledgement

sndcpy for the initial implementation of audio playback forwarding.

License

This project is licensed under the MIT license (LICENSE or http://opensource.org/licenses/MIT).

audiosource's People

Contributors

gdzx avatar rom1v avatar vahidborhani avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

audiosource's Issues

Audio skipping

Audio seems to come and go and the sound is just non-stop skipping, like so
image

Need clarification on instructions

The instructions say to run ./audiosource run to launch the app, but I have no idea what this means. Is this via ADB on my computer, on my phone via Termux, or something else? I tried running it from termux and it said I didn't have permissions even though i just granted them to termux. I tried running it from my drawer and it popped up a permissions window before instantly exiting

Windows ?

This is a really nice apps but a version for Windows is possible pls ???

Thaks a lot ;)

Crash on start

I simply installed the app & when opened it crashes.

Logs:

FATAL EXCEPTION: main
Process: fr.dzx.audiosource, PID: 22627
java.lang.RuntimeException: Unable to resume activity {fr.dzx.audiosource/fr.dzx.audiosource.MainActivity}: java.lang.IllegalStateException: Activity {fr.dzx.audiosource/fr.dzx.audiosource.MainActivity} did not call finish() prior to onResume() completing
	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3822)
	at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3854)
	at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51)
	at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loop(Looper.java:193)
	at android.app.ActivityThread.main(ActivityThread.java:6718)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.IllegalStateException: Activity {fr.dzx.audiosource/fr.dzx.audiosource.MainActivity} did not call finish() prior to onResume() completing
	at android.app.Activity.performResume(Activity.java:7314)
	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3814)
	... 11 more

Followed by another crash

FATAL EXCEPTION: main
Process: fr.dzx.audiosource, PID: 22822
android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service notification: Notification(channel=audiosource pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x40 color=0x00000000 vis=PUBLIC)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1745)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loop(Looper.java:193)
	at android.app.ActivityThread.main(ActivityThread.java:6718)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Device details:

Model : Lenovo TB-8704X
Android : 9
App version : 1.0 (1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.