sndcpyでAndroidのサウンドをUSB経由でPCに転送

AndroidのオーディオをPCに転送して視聴ということをよくやるのですが,昔は3.5mmオーディオミニジャックで最近はBluetooth A2DP sourceで転送しています.
今回USBで転送できる sndcpy を試してみました.

Tip

sndcpy はAndroid 10以降が必要です.別途クライアントPCにVLCも必要です.導入していない場合は導入しておきましょう.

$ sudo apt install vlc

sndcpyのReleasesから最新 🏛️を入手します.現在は v1.1 が最新でLinux版(sndcpy-v1.1.zip)とWindows版(sndcpy-with-adb-windows-v1.1.zip)があります.
今回Linuxなので sndcpy-v1.1.zipとチェックサムとその署名ファイルをダウンロードして確認します.

$ wget https://github.com/rom1v/sndcpy/releases/download/v1.1/sndcpy-v1.1.zip \
https://github.com/rom1v/sndcpy/releases/download/v1.1/SHA256SUMS.txt \
https://github.com/rom1v/sndcpy/releases/download/v1.1/SHA256SUMS.txt.asc
$ sha256sum -c ./SHA256SUMS.txt
sndcpy-v1.1.zip: 完了
$ gpg --verify ./SHA256SUMS.txt.asc

適当なディレクトリに展開します.

$ unzip -l ./sndcpy-v1.1.zip
Archive:  ./sndcpy-v1.1.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
    95591  2021-11-30 07:13   sndcpy.apk
      799  2021-11-30 07:13   sndcpy
     1028  2021-11-30 07:13   sndcpy.bat
---------                     -------
    97418                     3 files
$ mkdir ./sndcpy
$ cd sndcpy
$ unzip ../sndcpy-v1.1.zip

準備が出来たのでAndroid端末をUSB接続した状態で実行します.

$ ./sndcpy
Waiting for device...
* daemon not running; starting now at tcp:5037
* daemon started successfully
Performing Streamed Install
Success
28200
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.rom1v.sndcpy/.MainActivity }
Playing audio...
VLC media player 3.0.16 Vetinari (revision 3.0.13-8-g41878ff4f2)
[00005616cdcf65e0] dummy interface: using the dummy interface module...
[00007f5a800015c0] main stream error: connection error: Connection refused
[00007f5a94000c80] main input error: ES_OUT_SET_(GROUP_)PCR  is called too late (pts_delay increased to 0 ms)
[00007f5a94000c80] main input error: ES_OUT_SET_(GROUP_)PCR  is called too late (pts_delay increased to 1 ms)

この状態でAndroid側で音を再生してみるとPC側から聞こえます.このときAndroid側はミュートでもOKで,音量を上げるとAndroid/PC両方から音が出ました.

ということで簡単に動作したのですが問題が.かなり音が悪いです.音質はいいけど細かく途切れる感じです.以下のIssueが近いかな?

ということで一旦使うのをやめることにします.sndcpyはAndroidにsndcpy.apkをインストールするのでこれを削除します.

$ adb uninstall com.rom1v.sndcpy
Success

これで元に戻ったはずです.

sndcpy は現段階では環境を選ぶ(Android 10以降)し音もいまいちなのでこれからに期待です.とりあえずはこれまで通りBluetooth A2DPで繋ごうと思います.(これはこれで2台同時に接続できないという問題があります)

sndcpy a2dp source

環境
$ dpkg-query -W adb
adb     1:10.0.0+r36-7
$ lsb_release -dr
Description:    Debian GNU/Linux 11 (bullseye)
Release:        11
$ arch
x86_64

One thought to “sndcpyでAndroidのサウンドをUSB経由でPCに転送”

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)