Code Monkey home page Code Monkey logo

audio-share's Introduction

Audio Share

metadata/en-US/images/icon.png

GitHub release (latest SemVer) F-Droid GitHub license FOSSA Status GitHub Release Date GitHub last commit GitHub contributors GitHub commit activity GitHub Repo stars GitHub forks GitHub watchers GitHub language count GitHub top language GitHub repo size GitHub all releases Download Audio Share GitHub issues GitHub closed issues GitHub pull requests GitHub closed pull requests Release GitHub number of milestones

Download Audio Share

Audio Share can share Windows/Linux computer's audio to Android phone over network, so your phone becomes the speaker of computer. (You needn't buy a new speaker😄.)

Screenshots

docs/img/show_01.png

metadata/en-US/images/phoneScreenshots/1.png  metadata/en-US/images/phoneScreenshots/2.png

Requirements

Usage for Windows GUI

  • Download APK file and AudioShareServer.exe from latest release.
  • Open the AudioShareServer.exe on your computer. The default arguments may work well. But you may still have to check the "Host" part. It's normally the LAN address, such as 192.168.3.2. Make sure your phone can connect your computer over this IP address. Then Click "Start Server" button.
  • Install APK to your phone and open it. Modify the "Host" part to make sure it's same as the value of previous step, such as 192.168.3.2. Click "▶" button and enjoy the audio🎶.

Caution!!!: This app doesn't support auto reconnecting feature at present. Once the app is killed or disconnected by Android power saver, the audio playing will be stop. Adding app to the whitelist of power saver is recommended. To do this, you can press "Request Ignore Battery Optimizations" on app's Settings.

Usage for Windows/Linux CMD

  • Download the audio-share-server-cmd-windows.zip for Windows, the audio-share-server-cmd-linux.tar.gz for Linux.
  • Uncompress the archive file.
  • Find the LAN address of your computer, such as 192.168.3.2. Then run as-cmd -b 192.168.3.2 to start the server. It will use the default port 65530 and select a default audio endpoint.
  • The Windows will ask you to add firewall rules automatically while Linux won't. So if your Linux distribution enables firewall, you need to configure firewall manually.
  • Install APK to your phone and open it. Modify the "Host" part to make sure it's same as the value of previous step, such as 192.168.3.2. Click "▶" button and enjoy the audio🎶.

Configure Firewall Rules on Linux

Add rules

address=192.168.3.2 # change it.
port=65530 # change it.
sudo firewall-cmd --add-rich-rule="rule family=ipv4 destination address=$address port port=$port protocol=tcp accept"
sudo firewall-cmd --add-rich-rule="rule family=ipv4 destination address=$address port port=$port protocol=udp accept"
sudo firewall-cmd --runtime-to-permanent

Check rules

sudo firewall-cmd --list-rich-rules

Output:

rule family="ipv4" destination address="192.168.3.2" port port="65530" protocol="tcp" accept
rule family="ipv4" destination address="192.168.3.2" port port="65530" protocol="udp" accept

Remove rules

address=192.168.3.2 # change it.
port=65530 # change it.
sudo firewall-cmd --remove-rich-rule="rule family=ipv4 destination address=$address port port=$port protocol=tcp accept"
sudo firewall-cmd --remove-rich-rule="rule family=ipv4 destination address=$address port port=$port protocol=udp accept"
sudo firewall-cmd --runtime-to-permanent

About Audio Format

There are two kinds of audio format:

  • Capture audio format
  • Transfer audio format

The transfer audio format is uncompressed PCM data and keep same with capture audio format.

You can open server.log to see the capture audio format.

[2024-02-11 22:27:33.019] [server] [info] AudioFormat:
format_tag: 3
channels: 2
sample_rate: 192000
bits_per_sample: 32

As shown above, the format is 32 bit float, the channel count is 2, and sample rate is 192kHz.

On Windows, the capture audio format is the default value given by Windows Core Audio APIs. It seems like always be 32 bit float. The sample rate is affected by audio endpoint format. You may change it by setting System Sounds Panel(mmsys.cpl). In Playback tab, right click one available endpoint, and open Properties Panel, and select Advanced tab, and change Default Format and click Apply. This can be also done in Realtek Audio Console, if you use a Realtek Audio Card.

On Linux, the capture audio format is hardcoded. To keep same with Windows, the audio format is also 32 bit float. The channel count is always 2. The sample rate is always 48kHz.

Note that the higher sample rate will consume more network traffic bandwidth. Maybe in future, the capture audio format can be set by user manually.

About Volume

The final volume that you hear is affected by the following volume:

  • PC system volume.
  • Audio player volume on PC.
  • Android system media volume.
  • "Audio Volume" on Android app.
  • "Loudness Enhancer" on Android app.

They are all independent. If you max the volume of your PC and audio player, and still feel it's not enough, but don't want to change the Android system volume, you can increase "Loudness Enhancer" on app's Settings. It won't affect the system volume. The "Audio Volume" on app can decrease the volume you hear without changing system volume.

Too much loudness will hurt your ear!!! "Loudness Enhancer" has a limit of 3000mB. It's enough for most cases. If you still need more loudness, just directly change Android system volume.

Extra Setups for "No Audio Endpoint"

For Windows

Method 1: Make audio endpoint available when speaker doesn't plug in

Realtek sound card can make audio endpoint available when speaker doesn't plug in. Just open Realtek Audio Console, select "Device advanced settings" tab, and switch on "Disable front panel front popup dialog" option. Then the audio endpoint will show up. Other sound card may have similar options. If you can't find, then turn to Method 2.

Method 2: Install a third-party virtual audio device driver

At present, I haven't find a way to create virtual audio endpoint. The only way to achieve it is to write a virtual audio device driver. But it need a EV Code Signing Certificate to sign it. Otherwise, user can't install it. I don't want to pay for it. And there are many existed third-party virtual audio device drivers. You can find one or post one that you know at Virtual Audio Device Driver on Windows. Generally, a driver has an INF file. Right click it and click "Install" to install it.

For Linux

Thanks to PipeWire, it's very easy for Linux to create a virtual audio endpoint, even without a root privilege. Just copy the below config to ~/.config/pipewire/pipewire.conf.d/audio-share-sink.conf

context.objects = [
    {   factory = adapter
        args = {
           factory.name     = support.null-audio-sink
           node.name        = "Audio Share Sink"
           media.class      = Audio/Sink
           object.linger    = true
           audio.position   = [ FL FR ]
           priority.session = 1009
           priority.driver  = 1009
           monitor.channel-volumes = true
           monitor.passthrough = true
        }
    }
]

Then run systemctl --user restart pipewire to restart the PipeWire service.
Finally, you can see the added endpoint "Audio Share Sink".

[abc@localhost ~]$ as-cmd -l
[2024-03-17 22:46:14.563] [info] pipewire header_version: 0.3.48, library_version: 0.3.67
endpoint_list:
        * id: 30   name: Audio Share Sink
total: 1

Compile from source

  • Android App

    • Android Studio will import all dependencies automatically.
  • Server MFC

    • vcpkg is required for install dependencies.
    • Run vcpkg install asio protobuf spdlog to install deps. The vcpkg triplet is x64-windows-static-md.
    • Visual Studio 2022 with "Desktop development with C++" workload and "C++ MFC for latest v143 build tools (x86 & x64)" option is required for compiling.
  • Server CMD

    • CMake and a compiler support C++20 is required. Linux also need libpipewire-dev or pipewire-devel.
    • Install vcpkg, and set VPCKG_ROOT env. This env is required by CMakePresets.json.
    • Run vcpkg install asio protobuf spdlog cxxopts to install deps. The vcpkg triplet is x64-windows-static-md for Windows, x64-linux for Linux.
    • Run cmake --preset linux-Release to configure.
    • Run cmake --build --preset linux-Release to build. The as-cmd is located in out/install/linux-Release/bin/as-cmd.
    • For Windows, replace linux to windows in previous two steps.

Star History

Star History Chart

License

This project is licensed under the Apache-2.0 license .

   Copyright 2022-2024 mkckr0 <https://github.com/mkckr0>

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

FOSSA Status

Used third-party libraries

audio-share's People

Contributors

fossabot avatar mkckr0 avatar sodomon2 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  avatar  avatar  avatar

audio-share's Issues

[BUG] Less louder when playing through audio-share than on the actual device with same volume.

Describe the bug
When I play the same video at the same volume first from windows to android and then through android only, Why is the audio directly from android more louder than the one from windows even though the volume is the same for both?

To Reproduce
Steps to reproduce the behavior:

  1. Connect audio-share android and windows using usb tethering as it gives more clear audio.
  2. Play the same video file first from windows to android and then through android only keeping the volume of android same for both.
  3. The one which is played from windows to android is less loud than the one directly from android.

Expected behavior
The loudness should have been the same between same media played from windows to android and that same media played directly on android as we are keeping the volume same.

Screenshots
If applicable, add screenshots to help explain your problem.

Server (please complete the following information):

  • OS: Windows 11 23H2 22631.3007
  • GUI or CMD: GUI
  • Version v0.0.15

Android (please complete the following information):

  • Device: Samsung Galaxy Tab A8
  • OS: Android 13
  • Version v0.0.15

Additional information
Add any other information about the problem here, such as server.log or stdout.

[New Feature] Add audio compression

Describe the new feature you'd like
I'm trying to use this awesome software to monitor a remote audio feed in as close to realtime as possible. It's doing good but would like to know if there's a compression available that doesn't introduce crazy delay or kill the CPU but still reduce some of the fat WAV bits going down the pipe.

Describe the reason why you want to add the feature
I need this feature because I stream audio across the internet to monitor inputs and such. That's not in the same local network, across different ISPs.

Describe how to implement the feature if you can
ffmpeg seems to encode and decode mp3 and m4a at 30x or so, maybe that's enough performance to not introduce a huge delay. I also don't mean you should go the mp3/m4a route, it's just an example.

[New Feature] Edit the capture PCM format(integer or float, bitwise, etc)

Describe the new feature you'd like
I propose to add "edit the capture PCM format(integer or float, bitwise, etc)"

Describe the reason why you want to add the feature
I need this feature because 32-bit float PCM format may need conversion between floating-point and integer. It may slow down the performance and increase the latency. Most of audio devices only support integer PCM format.

Describe how to implement the feature if you can

Additional context
#57

Auto Start

This is a very amazing application. Hopefully the developer will add auto start to the Android version so that it runs automatically when the smartphone is restarted.

IPv6 Support

Discussed in #47

Originally posted by onichandame February 29, 2024
My PC is in a cable-only NAT network where the gateway is connected to the upper LAN. My Android phone is in the upper LAN by wifi. Hence my phone cannot connect to the PC behind NAT by ipv4. Both devices have public ipv6 addresses. Is it possible to connect them by ipv6 to bypass the NAT?

versionCode not increased?

Looks like you forget to increase versionCode with each new release:

package: name='io.github.mkckr0.audio_share_app' versionCode='1' versionName='0.0.4'

versionCode is what Android uses internally to tell versions apart – so same versionCode means same version to it and the new APK won't be considered an update. Could you please take care to have it increased whenever you prepare a release? Thanks in advance!

[New Feature] Add user/password authentication

Describe the new feature you'd like
add any form of authentication password, token or whatever

Describe the reason why you want to add the feature
anybody on the same network could listen to your stuff and it's worse if your pc is on DMZ.

[BUG] Audio crackles heavily with certain audio-devices

Describe the bug
Audio crackles heavily with certain audio-devices in windows.

Audio-devices (mine)

  • Realtek onbaord-soundcard: fine
  • Creative Sound Blaster G3: crackles

Audio-devices (friend's)

  • VB-Audio CABLE: fine
  • Realtek onbaord-soundcard: crackles

To Reproduce

  1. Start audio-share-server as usual
  2. Connect with android-app
  3. audio crackles heavily

Expected behavior

  • Audio doesn't crackle

Server (mine):

  • OS: Windows 11 Pro Insider Preview 22H2 (23565.1000)
  • GUI/CMD: both
  • Version: v0.0.11.0

Server (friend's):

  • OS: Windows 10 Home 22H2 (19045.3570)
  • GUI/CMD: both
  • Version. v0.0.11.0

Android (mine):

  • Device: Fairphone 3
  • OS: Android 13
  • Version: v0.0.11.0

Android (friend's):

  • Device: Samsung Galaxy s7 edge
  • OS: Android 8
  • Version: v0.0.11.0

[BUG] Wrong example given

Describe the bug
The example provided by as-cmd -h is:

Example:
  as-cmd -l 192.168.3.2:65530 -e 48

This does not run as-cmd properly.

To Reproduce
Steps to reproduce the behavior:

  1. as-cmd -h

Expected behavior

Example:
  as-cmd -b 192.168.3.2:65530 -e 48

It should probably be -b, not -l.

Server (please complete the following information):

  • OS: [openSUSE TUmbeweed 20231117]
  • GUI or CMD: [CMD]
  • Version [0.0.12]

[BUG] There is a null endpoint_id on my laptop. It is actually 0.

Describe the bug

./as-cmd -b 192.168.50.131
[2024-01-14 17:27:45.218] [info] pipewire header_version: 0.3.48, library_version: 0.3.48
endpoint_id is empty

To Reproduce
Steps to reproduce the behavior:
go to command line and type this in --

./as-cmd -l 192.168.50.131
[2024-01-14 17:28:50.888] [info] pipewire header_version: 0.3.48, library_version: 0.3.48
endpoint_list:
total: 0

Expected behavior
A clear and concise description of what you expected to happen.
I love that is works on windows, but alas I want to use it on Linux. Please help me out.
Screenshots
If applicable, add screenshots to help explain your problem.

Server (please complete the following information):

  • OS: [Linuxt Mint 21.2 Victoria]
  • GUI or CMD: [CMD]
  • Version [e.g. v0.0.15]

Android (please complete the following information):

  • Device: [e.g. Pixel 4XL]
  • OS: [e.g. Android 13]
  • Version [e.g. v0.0.14]

Additional information
Add any other information about the problem here, such as server.log or stdout.

No sound after connecting, not sure what the issue is

Describe the bug / To Reproduce
I run the program AudioShareServer.exe as instructed, I make sure the host/IP & port is the same as the PC it's running on. I select the audio endpoint as my speaker and press start. It changes to "Stop Server".

On Android I started the app and made sure the Host & Port matches with the host/IP & port above. I press the play button which changes to a pause icon.

I then start some kind of sound on the PC.

Expected behavior
I should expect it to play on the android app? No sound from the android device. Everything seems to be running, no errors..

Server (please complete the following information):

  • OS: Windows 11 Home 22H2
  • CPU: AMD Ryzen 5 5600H with Radeon Graphics 3.30 GHz
  • GUI or CMD: GUI
  • Version 0.0.14.0

Android (please complete the following information):

  • Device: Samsung Galaxy A52S 5G / SM-A528B/DS
  • OS: Android 14
  • Version 0.0.14.0

log

[2024-01-01 11:12:00.985] [server] [info] tcp listen success on 192.168.1.5:65530
[2024-01-01 11:12:00.985] [server] [info] endpoint_id: {0.0.0.00000000}.{########-####-####-####-#######}
[2024-01-01 11:12:00.986] [server] [info] udp listen success on 192.168.1.5:65530
[2024-01-01 11:12:00.986] [server] [info] server started
[2024-01-01 11:12:00.986] [server] [info] select audio endpoint: Panasonic-TV (NVIDIA High Definition Audio)
[2024-01-01 11:12:00.989] [server] [info] WAVEFORMATEX: wFormatTag: 65534, nBlockAlign: 8
[2024-01-01 11:12:00.990] [server] [info] AudioFormat:
format_tag: 3
channels: 2
sample_rate: 48000
bits_per_sample: 32

[2024-01-01 11:12:00.999] [server] [info] buffer size: 480000
[2024-01-01 11:12:01.000] [server] [info] deivce period: 3ms
[2024-01-01 11:12:13.982] [server] [info] accept 192.168.1.6:58206
[2024-01-01 11:12:28.924] [server] [info] server stopped

[New Feature] quick setting tile

quick setting tile and phone to phone
bro add a quick setting tile of this app so that it can access easily and hosting from phone too

[BUG] No longer working after Arch update (PC). (console command) Version: v0.0.17

No longer working after Arch update on my PC.

To Reproduce
Update Arch Linux with "pacman -Syyu".

Expected behavior
Please update or recompile to the newest Arch Linux packages for compatibility with pipewire.

The error looks like:

as-cmd -b 192.168.42.226
[2024-03-03 19:33:25.743] [info] pipewire header_version: 0.3.48, library_version: 1.0.3
bind: Cannot assign requested address

[New Feature] Add "Repair Firewall" button for AudioShareServer.exe

Describe the new feature you'd like
I propose to add a "Repair Firewall" button for AudioShareServer.exe

Describe the reason why you want to add the feature
I need this feature because many people may have firewall rule problem.

Describe how to implement the feature if you can
Use the interface
https://learn.microsoft.com/en-us/previous-versions/windows/desktop/ics/c-enumerating-firewall-rules
https://learn.microsoft.com/en-us/windows/win32/secauthz/developing-applications-that-require-administrator-privilege
https://learn.microsoft.com/en-us/windows/win32/com/the-com-elevation-moniker

[New Feature] Requesting for in-app update feature (Auto update notifier)

Describe the new feature you'd like
I propose to add in-app update feature.

Describe the reason why you want to add the feature
I need this feature because users don't have to come to github and download and install the apk manually to update the app.

Describe how to implement the feature if you can
Screenshot_20240121_130637_Seal

Should look like this
(Concept from JunkFood02/Seal (https://github.com/JunkFood02/Seal)

Additional context
Windows and Android both should have in-app update feature

Windows client? Share audio from PC to PC?

This is a great idea for an app, any chance you can add functionality to share audio from a PC to another PC?

For example if you want to play games on your desktop while watching a video on your laptop while wearing headphones.

[BUG] Audio crackling sound

Describe the bug
Getting distorted, crackling sound when connecting Windows PC with Android.

To Reproduce
Steps to reproduce the behavior:

  1. Download and install the latest build
  2. Connect PC with Phone and there you go, enjoy the crackling sound

Expected behavior
Has to be crystal clear sound.

Server (please complete the following information):

  • OS: Windows 10 22H2
  • GUI or CMD: GUI
  • Version : 0.0.11

Android (please complete the following information):

  • Device: Samsung Galaxy A13
  • OS: OneUI 5.1 (Android 13)
  • Version: 0.0.11

Additional information
Downgrading to v0.0.9 resolves the issue. You must downgrade to v0.0.9 inorder to get crystal, clear sound.

[BUG] High latency, even with USB tethering

Describe the bug
I've connected the phone to PC over USB 2.0 and enabled Tethering over USB to have lower latency.
I've picked the correct adapter's IP (not the ethernet cable or anything). I also disabled any matters of wireless connectivity on the phone.
Pinging each other from each end, the average latency is around 0.5ms (half a milisecond).
However there's a significant delay in audio of around 350ms, although my phone is quite old (2015, low-end), I am still not sure if it is purely the decompression overhead on its end.

To Reproduce
Steps to reproduce the behavior:

  1. Connect phone to PC over USB
  2. Enable tethering over USB on Android
  3. Start the server with the default endpoint which regular speakers are connected to. Make sure to pick the correct IP address corresponding to the adapter newly created.
  4. Using this YouTube video, determine the average delay in audio

Expected behavior
Way lower amount of latency

Server:

  • OS: Windows 10 21H2 19044.3570
  • CMD
  • Version: v0.0.11

Android:

  • Device: ASUS Zenfone 2 Laser
  • OS: Android 7 (LineageOS custom ROM)
  • Version: v0.0.11

Additional information

> audio-share-server.exe -b 192.168.42.182
[2023-11-05 14:39:38.685] [info] endpoint_id: {0.0.0.00000000}.{9b8dcbfc-a8ce-41ad-87c6-efa0e11b319a}
[2023-11-05 14:39:38.685] [info] tcp listen success on 192.168.42.182:65530
[2023-11-05 14:39:38.686] [info] udp listen success on 192.168.42.182:65530
[2023-11-05 14:39:38.686] [info] server started
[2023-11-05 14:39:38.686] [info] select audio endpoint: Hoparl÷r (Realtek(R) Audio)
[2023-11-05 14:39:38.690] [info] WAVEFORMATEX: wFormatTag: 65534, nBlockAlign: 8
[2023-11-05 14:39:38.690] [info] AudioFormat:
format_tag: 3
channels: 2
sample_rate: 48000
bits_per_sample: 32

[2023-11-05 14:39:55.602] [info] accept 192.168.42.129:49387

[BUG] Cannot compile under Linux

Describe the bug
I have both both Boost and asio cpp installed, still when trying to compile audio-core I get

CMake Error at CMakeLists.txt:49 (find_package):
  Could not find a package configuration file provided by "asio" with any of
  the following names:

    asioConfig.cmake
    asio-config.cmake

  Add the installation prefix of "asio" to CMAKE_PREFIX_PATH or set
  "asio_DIR" to a directory containing one of the above files.  If "asio"
  provides a separate development package or SDK, be sure it has been
  installed.

To Reproduce
Steps to reproduce the behavior:
Try building under Linux

[BUG] Endpoint 0

I'm on LInux Mint 21.3 and as I check for endpoint, I ended up with 0 and can't able to use the program. I remember AudioRelay has some instruction to create virtual speaker in order to work which you can check it HERE but I'm not sure if it applies the same for audioshare. A help is very much appreciated, thank you.

[New Feature] Edit sample rate

Describe the new feature you'd like
Edit sample rate through as-cmd parameter/option

example : as-cmd -b 192.168.x.x --sample-rate 96000

Describe the reason why you want to add the feature
Increasing sample rate may lower latency since default is 48000

Additional context
I tried changing pipewire.conf but as-cmd still reports 48000

[BUG] latency is greater than, 2000ms at times

Describe the bug
delay is greater than 2000ms at times making it unfit for watching a video or zoom meeting

To Reproduce
Steps to reproduce the behavior:
start server
start client
watch a video on the server

Expected behavior
I expect there to be a delay of 200ms or less

Screenshots
not applicable

Server (please complete the following information):

  • OS: Linux 6.7.9-arch1-1
  • GUI or CMD: CMD
  • Version: 0.0.17
  • network connection: wired Ethernet

Android (please complete the following information):

  • Device: FairPhone 3
  • OS: Android 13
  • Version: 0.0.17
  • network connection: Wi-Fi

Additional information
you might want to see how it's done in this project since it's multi-platform and has little latency

https://github.com/LizardByte/Sunshine/blob/nightly/src/audio.cpp

FR: manual buffer sizes

Please allow manual adjustment of buffer sizes everywhere.
This is crucial for fine-tuning latency vs. drop-outs vs. WiFi vs. LAN.

Thanks.

[New Feature] Reject TCP only clients.

Describe the new feature you'd like
Reject clients that can only connect with TCP.

Describe the reason why you want to add the feature
Clients failing to connect with UDP can't output any audio.
#43

[New Feature] Add microphone support

Describe the new feature you'd like
It would be lovely to have bidirectional audio.

Describe the reason why you want to add the feature
I want this feature because then I could use my analog wired gaming headset as a wireless one using this app.

Describe how to implement the feature if you can
I'm not sure, but I have a feeling Pipewire can do this.

Rattling sound from Linux to Android

Describe the bug
Rattling sound when relaying audio from Linux to Android. The audio plays alright, but with clear rattling sound in the background.

To Reproduce
Installed Android APKs and the ran the Linux binary of the same version from Git.

Expected behavior
Clear sound.

Server:

  • OS: Linux Fedora (Silverblue) 6.6.8-200.fc39.x86_64
  • Version: v0.015 and v0.014
  • Pipewire version: 1.00
 $ pipewire --version
 pipewire
Compiled with libpipewire 1.0.0
Linked with libpipewire 1.0.0

Android:

  • Device: Samsung Tab S3 and Samsung Tab S6
  • OS: Android 9 and Android 11
  • Version: v0.015 and v0.014

Additional information
Nothing strange from the terminal output (shown below):

[2024-01-10 02:03:43.523] [info] pipewire header_version: 0.3.48, library_version: 1.0.0
[2024-01-10 02:03:43.526] [info] endpoint_id: 45
[2024-01-10 02:03:43.526] [info] tcp listen success on 10.29.173.44:65530
[2024-01-10 02:03:43.526] [info] udp listen success on 10.29.173.44:65530
[2024-01-10 02:03:43.526] [info] server started
[2024-01-10 02:03:43.526] [info] select audio endpoint: ALC285 Analog
[2024-01-10 02:03:43.552] [info] block_align: 8
[2024-01-10 02:03:43.552] [info] AudioFormat:
format_tag: 3
channels: 2
sample_rate: 48000
bits_per_sample: 32

[2024-01-10 02:04:02.283] [info] accept 10.31.134.170:42828

I saw the same thing from other issues but on Windows, maybe you could apply the same fix for Linux as well?

[Suggestion] Simplifying the server setup

Describe the new feature you'd like
I propose to add some kind of feature that would make it simpler/faster to set-up the Audio Server for less experienced people.

Describe the reason why you want to add the feature
Currently I'm having to run the program at startup as my Audio Card is dead, and having to run ./as-cmd -l every time because the Endpoint keeps changing is a little inconvenient. It is currently possible to automate it with scripts but not all users might be able to do that.

Describe how to implement the feature if you can
Make the program automatically pick the first endpoint that is found (Works for most people unless they have multiple audio devices)

I'm currently using this bash script to get the program running at startup:

IPV4=$(hostname -I | awk '{print $1}')
ENDPOINT=$(./as-cmd -l | grep id | grep -Eo '[0-9]{1,4}')

if [ "$1" ]; then
    IPV4=$1
fi

if [ "$2" ]; then
    ENDPOINT=$2
fi

./as-cmd -e $ENDPOINT -b $IPV4

[New Feature] Make the localhost 192.168***** ip default please.

Describe the new feature you'd like
Dear audioshare team,

I'm a user of the audioshare software and overall, I'm happy with it. However, I'd like to provide feedback on two aspects that could be improved:

  1. Default IP selection:
    I suggest changing the default selected IP to the local host's IP (19.168..) . Most people connect to audioshare using their lan's local host IP, so this would be more convenient for users.

  2. Auto-start with Windows:
    Adding an "auto-start with Windows" feature would be helpful. This would automatically launch audioshare whenever Windows starts up, offering users a smoother experience.

Thank you for your time and consideration.

Additional context
Screenshot 2024-01-07 085915
here is recommended scene

Typo in the about

Yes, in the about of the project is a typo which is needn't:

... (You needn't to buy a new speaker😄.)

instead there should be don't need as needn't is need not so it would be something like:

... (You need not to buy a new speaker😄.)

which is like you can't buy in that case.

[feature] Android host support

It would be great if "audio-share" can share audio from android to android.
I mainly use audio replay app to cast audio from my android TV box a old android.

[BUG] Can't connect to server

Server :

  • OS: [Windows 11 Version 23H2 for x64-based Systems (KB5035853)]
  • GUI or CMD: [e.g. GUI]
  • Version [e.g. v0.0.11]

Android (please complete the following information):

  • Device: [Xioami 11T pro]
  • OS: [Android 13]

error
i have started server on the windows 11 and the server is started but in android it is not connecting and both are in the same wifi
image
WhatsApp Image 2024-03-14 at 21 53 48_3beb4cd3

[BUG] app delay

Describe the bug
sound delay (1 second).

Is there a way to remove delay?

[BUG] No sound on Arch Linux

Describe the bug
as-cmd starts and shows no errors, I can also connect with android device and it says "started" but there is no sound.
It works on Debian and Fedora. Fedora pipewire version is same as arch linux but still works. Was working on arch linux untill a few months ago.

To Reproduce
Steps to reproduce the behavior:

  1. Install arch linux with Installation Guide.
  2. Install pipewire with "sudo pacman -S pipewire wireplumber pipewire-pulse pipewire-jack pipewire-alsa"
  3. Enable pipewire service with "systemctl enable --user pipewire wireplumber pipewire-pulse"
  4. Start as-cmd with "./as-cmd -b [your-ip]"

Screenshots
Screenshot from 2024-02-15 21-16-15

Screenshot from 2024-02-15 21-16-23

Screenshot_20240215-210139_Audio Share

Server (please complete the following information):

  • OS: Arch Linux
  • GUI or CMD: CMD
  • Version: v0.0.17

Android (please complete the following information):

  • Device: Moto G5S
  • OS: Android 12L and 11 tested
  • Version: v0.0.17

Additional information
Add any other information about the problem here, such as server.log or stdout.
There is no such option on as-cmd usage help.

more
It's fine if you don't want to fix, I'll just reinstall debian or something.

[BUG] windows server stops sending audio after a few seconds

Describe the bug
windows server stops transmitting sound after a few seconds - always. Then I have to stop server, and start server and reconnect from the remote phone to be able to hear again.

To Reproduce
Steps to reproduce the behavior:

  1. Start server on windows, select device to capture, start server.
  2. Connect from remote phone.
  3. Wait for audio to stop transmitting without a network disconnection.

Expected behavior
Windows server to not stop sending audio until you hit stop server.

Server (please complete the following information):

  • OS: Windows 11 23H2 (22631.2861)
  • GUI or CMD: GUI
  • Version 0.0.14.0/0.0.15.0

Android (please complete the following information):

  • Device: galaxy s23 ultra
  • OS: android 14
  • Version v0.0.14/15

Additional information

server.log:

[2024-01-13 11:24:46.090] [server] [info] tcp listen success on 192.168.10.85:65530
[2024-01-13 11:24:46.090] [server] [info] endpoint_id: {0.0.0.00000000}.{f315e3f8-fc1b-49bc-95dd-8ddfe6594514}
[2024-01-13 11:24:46.090] [server] [info] udp listen success on 192.168.10.85:65530
[2024-01-13 11:24:46.090] [server] [info] server started
[2024-01-13 11:24:46.090] [server] [info] select audio endpoint: Speakers (M-Audio M-Track Solo and Duo)
[2024-01-13 11:24:46.095] [server] [info] WAVEFORMATEX: wFormatTag: 65534, nBlockAlign: 8
[2024-01-13 11:24:46.095] [server] [info] AudioFormat:
format_tag: 3
channels: 2
sample_rate: 48000
bits_per_sample: 32

[2024-01-13 11:24:46.109] [server] [info] buffer size: 480000
[2024-01-13 11:24:46.114] [server] [info] device period: 3ms
[2024-01-13 11:24:50.576] [server] [info] accept 87.177.12.86:50642
[2024-01-13 11:25:21.090] [server] [info] accept_udp_loop No connection could be made because the target machine actively refused it.
[2024-01-13 11:25:25.442] [server] [info] close 87.177.12.86:50642
[2024-01-13 11:25:25.913] [server] [info] accept 87.177.12.86:43018
[2024-01-13 11:26:05.101] [server] [info] close 87.177.12.86:43018
[2024-01-13 11:26:05.481] [server] [info] accept 87.177.12.86:35222
[2024-01-13 11:27:19.661] [server] [info] tcp listen success on 192.168.10.85:65530
[2024-01-13 11:27:19.661] [server] [info] endpoint_id: {0.0.0.00000000}.{f315e3f8-fc1b-49bc-95dd-8ddfe6594514}
[2024-01-13 11:27:19.661] [server] [info] udp listen success on 192.168.10.85:65530
[2024-01-13 11:27:19.661] [server] [info] server started
[2024-01-13 11:27:19.661] [server] [info] select audio endpoint: Speakers (M-Audio M-Track Solo and Duo)
[2024-01-13 11:27:19.664] [server] [info] WAVEFORMATEX: wFormatTag: 65534, nBlockAlign: 8
[2024-01-13 11:27:19.664] [server] [info] AudioFormat:
format_tag: 3
channels: 2
sample_rate: 48000
bits_per_sample: 32

[2024-01-13 11:27:19.678] [server] [info] buffer size: 480000
[2024-01-13 11:27:19.680] [server] [info] device period: 3ms
[2024-01-13 11:27:26.009] [server] [info] accept 87.177.12.86:38038
[2024-01-13 11:27:56.682] [server] [info] accept_udp_loop No connection could be made because the target machine actively refused it.
[2024-01-13 11:28:00.108] [server] [info] server stopped
[2024-01-13 11:28:00.504] [server] [info] tcp listen success on 192.168.10.85:65530
[2024-01-13 11:28:00.504] [server] [info] udp listen success on 192.168.10.85:65530
[2024-01-13 11:28:00.504] [server] [info] endpoint_id: {0.0.0.00000000}.{f315e3f8-fc1b-49bc-95dd-8ddfe6594514}
[2024-01-13 11:28:00.504] [server] [info] server started
[2024-01-13 11:28:00.505] [server] [info] select audio endpoint: Speakers (M-Audio M-Track Solo and Duo)
[2024-01-13 11:28:00.506] [server] [info] WAVEFORMATEX: wFormatTag: 65534, nBlockAlign: 8
[2024-01-13 11:28:00.506] [server] [info] AudioFormat:
format_tag: 3
channels: 2
sample_rate: 48000
bits_per_sample: 32

[2024-01-13 11:28:00.517] [server] [info] buffer size: 480000
[2024-01-13 11:28:00.519] [server] [info] device period: 3ms
[2024-01-13 11:28:01.642] [server] [info] accept 87.177.12.86:48632
[2024-01-13 11:28:31.979] [server] [info] accept_udp_loop No connection could be made because the target machine actively refused it.
[2024-01-13 11:28:35.597] [server] [info] server stopped
[2024-01-13 11:28:35.948] [server] [info] tcp listen success on 192.168.10.85:65530
[2024-01-13 11:28:35.948] [server] [info] endpoint_id: {0.0.0.00000000}.{f315e3f8-fc1b-49bc-95dd-8ddfe6594514}
[2024-01-13 11:28:35.948] [server] [info] udp listen success on 192.168.10.85:65530
[2024-01-13 11:28:35.948] [server] [info] server started
[2024-01-13 11:28:35.948] [server] [info] select audio endpoint: Speakers (M-Audio M-Track Solo and Duo)
[2024-01-13 11:28:35.949] [server] [info] WAVEFORMATEX: wFormatTag: 65534, nBlockAlign: 8
[2024-01-13 11:28:35.949] [server] [info] AudioFormat:
format_tag: 3
channels: 2
sample_rate: 48000
bits_per_sample: 32

[2024-01-13 11:28:35.959] [server] [info] buffer size: 480000
[2024-01-13 11:28:35.963] [server] [info] device period: 3ms
[2024-01-13 11:28:37.497] [server] [info] accept 87.177.12.86:51344
[2024-01-13 11:29:07.865] [server] [info] accept_udp_loop No connection could be made because the target machine actively refused it.
[2024-01-13 11:29:14.655] [server] [info] close 87.177.12.86:51344
[2024-01-13 11:29:15.171] [server] [info] accept 87.177.12.86:60074
[2024-01-13 11:29:18.530] [server] [info] server stopped
[2024-01-13 11:29:18.763] [server] [info] tcp listen success on 192.168.10.85:65530
[2024-01-13 11:29:18.763] [server] [info] endpoint_id: {0.0.0.00000000}.{f315e3f8-fc1b-49bc-95dd-8ddfe6594514}
[2024-01-13 11:29:18.764] [server] [info] udp listen success on 192.168.10.85:65530
[2024-01-13 11:29:18.764] [server] [info] server started
[2024-01-13 11:29:18.764] [server] [info] select audio endpoint: Speakers (M-Audio M-Track Solo and Duo)
[2024-01-13 11:29:18.764] [server] [info] WAVEFORMATEX: wFormatTag: 65534, nBlockAlign: 8
[2024-01-13 11:29:18.764] [server] [info] AudioFormat:
format_tag: 3
channels: 2
sample_rate: 48000
bits_per_sample: 32

[2024-01-13 11:29:18.773] [server] [info] buffer size: 480000
[2024-01-13 11:29:18.775] [server] [info] device period: 3ms
[2024-01-13 11:29:19.907] [

[BUG] Android client crashes after set `AudioTrack Buffer size Scale` to `0` and reconnect

Describe the bug
Android client crashes after set AudioTrack Buffer size Scale to 0 and reconnect

To Reproduce
Easily reproduce by setting AudioTrack Buffer size Scale to 0 and reconnect

Expected behavior
Show error popup and return to previous value

Server (please complete the following information):

  • OS: Windows 11 22H2
  • GUI or CMD: GUI
  • Version v0.0.17

Android:

  • Device: Galaxy Tab S6
  • OS: Android 13 One UI 4.1.1
  • Version v0.0.17

Additional information
Thank you for making this app. 😊

Mute PC

Is there a way to just have audio on the phone and not on PC as well?

[BUG] rattling sound when connecting windows to android

Describe the bug
When I connect to 5.8GHz WiFi on my laptop, my Android is making a rattling sound.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'your PC/laptop and connect wirelessly with your router using the 5.8Ghz band frequency. Then, start the server on your PC/laptop.
  2. Click on 'The start icon on the app, you will hear a rattling sound.'

Expected behavior
A clear sound comes out of your Android phone, without any rattling sound.

Server (please complete the following information):

  • OS: [e.g. Windows 10 22H2 19045.3570]
  • GUI or CMD: [e.g. GUI]
  • Version [e.g. v0.0.14]

Android (please complete the following information):

  • Device: [Realme X2 Pro]
  • OS: [Android 11]
  • Version [e.g. v0.0.14]

Additional information
But when connecting to a 2.4GHz band, there is no rattling sound.

[BUG] Failing to connect to server

Describe the bug
Connection timed out when trying to connect to the server. The Android app and computer executable have the same LAN adress and port but fail to connect. The phone is connected via WiFi and the computer via Ethernet

To Reproduce
Steps to reproduce the behavior:

  1. Start Audio Share server in computer
  2. Open Audio Share app and edit the host adress
  3. See error "connection timed out"

Screenshots
Audioshareapk
audioshare

Server:

  • OS: Windows 11 x64
  • GUI
  • Version 0.0.17
    Android:
  • Device: [Motorola g60]
  • OS: [Android 12]
  • Version 0.0.15 from F-Droid

Help Request For Linux

Greetings,

I am a linux user and I cannot make Audio Share work.
When I write ./as-cmd -b 10.188.0.1 -e 48, following is the output I get:

[2023-11-02 17:04:58.930] [info] pipewire header_version: 0.3.48, library_version: 0.3.48
bind: Cannot assign requested address

So could you please help me in this regard?
Thank you in advance.

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.