Scrsndcpy
このソフトは、USB(もしくはWi-Fi)で接続されたAndroidデバイスの画面と音声を、PC上でミラーリングするために作られました
Install / Use
/learn @amate/ScrsndcpyREADME
scrsndcpy

■はじめに
このソフトは、USB(もしくはWi-Fi)で接続されたAndroidデバイスの画面と音声を、PC上でミラーリングするために作られました
ダウンロードはこちらから
https://github.com/amate/scrsndcpy/releases/latest
■動作環境
・Windows11 home 64bit バージョン 24H2
※64bit版でしか動作しません
・音声のミラーリングにはAndroid 10以降が必要です
■使い方
事前に、Android側で[開発者向けオプション]を表示してから[USBデバッグ]を有効にしてください
https://developer.android.com/studio/command-line/adb.html#Enabling
USBデバッグを有効にしたAndoridとPCをUSBケーブルで接続すると、
自動的に"Device list"に接続したデバイスのシリアル番号が表示されます
Device listからミラーリングしたいデバイスを選択した後に、
"Screen Sound Copy"ボタンを押すとAndroidの画面と音声がPC側にミラーリングされます
もしミラーリングウィンドウが表示されない場合、ソフトを終了した状態で同じフォルダ内にある"adb kill-server.bat"を実行してみてください
・Wi-Fi経由での接続方法
Configから"デバイスへWi-Fi経由での接続を行えるようにする"にチェックが入っている状態で、PCにデバイスを接続してください
すると、デバイス側がWi-Fi経由での接続を待ち受けるようになるので、Device listから"192.168.0.x:5555"を選択した後に"Screen Sound Copy"ボタンを押せばミラーリングが開始されます
画面の位置を記憶するには、Ctrlキーを押しながら"Streaming"ボタンを押してください
"Screenshot"ボタンを右クリックで保存フォルダを開きます
■設定
・自動ログインパスワード
おそらくAndroid11以降でないと動作しません
・バッファの最大サンプル数
デバイスから送られてくる音声データの転送量が一定ではないので、音ズレを防ぐために、
バッファにある音声サンプル数が、この数値を超えると音声サンプルを破棄して自動的に調整します
この数値を増やすとバッファが安定しますが、音声のレイテンシが増えます(音が遅れる)
・ミラーリング開始時にデバイスの音声をミュートする
おそらくAndroid11以降でないと動作しません
・デバイス側で物理的なHIDキーボードをシミュレートします
PC側のキーボードがまるでデバイス側に接続されているかのように動作します
正常に動作させるためには、デバイス側で物理キーボードのレイアウト設定が必要です
設定ページの開き方
- "My device"ウィンドウをアクティブにして、 Alt+Kキーを押す
- デバイスの設定->システム->言語と入力->物理デバイス
上記のどちらかを実行し、
<img src="https://raw.githubusercontent.com/amate/scrsndcpy/images/images/uhid1.png" width="300px"> <img src="https://raw.githubusercontent.com/amate/scrsndcpy/images/images/uhid2.png" width="300px"> <img src="https://raw.githubusercontent.com/amate/scrsndcpy/images/images/uhid3.png" width="300px">上記の画像のようにキーボードレイアウトを設定してください
■アンインストールの方法
レジストリも何もいじっていないので、scrsndcpyフォルダ事削除すれば終わりです
■免責
作者は、このソフトによって生じた如何なる損害にも、
修正や更新も、責任を負わないこととします。
使用にあたっては、自己責任でお願いします。
何かあればメールフォームか、githubのissuesにお願いします。
■使用ライブラリ・素材
app
-
scrcpy
https://github.com/Genymobile/scrcpy -
sndcpy
https://github.com/rom1v/sndcpy
library
-
Boost C++ Libraries
https://www.boost.org/ -
JSON for Modern C++
https://github.com/nlohmann/json -
WTL
https://sourceforge.net/projects/wtl/
icon
- ICON HOIHOI
http://iconhoihoi.oops.jp/
■How to build
実行ファイルの生成には、Visual Studio 2022が必要です
事前にboostをビルドして、パスを通しておいてください
ビルドに必要なライブラリは、vcpkgによって自動的にダウンロード、ライブラリ(.lib)の生成が行われるようになっています
https://github.com/microsoft/vcpkg/archive/refs/tags/2021.04.30.zip
まず上記URLから"vcpkg-2021.04.30.zip"をダウンロードして、適当なフォルダに解凍します
解凍したフォルダ内にある "bootstrap-vcpkg.bat" を実行すれば、同じフォルダ内に "vcpkg.exe"が生成されます
コマンドプロンプトを管理者権限で起動し
cd vcpkg.exeのあるフォルダまでのパス
を入力しEnter、コマンドプロンプトのカレントディレクトリを変更します
次に
vcpkg integrate install
と入力しEnter
Applied user-wide integration for this vcpkg root.
と表示されたら成功です
Visual Studio 2022で "scrsndcpy.sln"を開き、
デバッグ->デバッグの開始 を実行すれば、vcpkgがライブラリの準備をした後、実行ファイルが生成されます
■著作権表示
Copyright (C) 2021-2025 amate
自分が書いた部分のソースコードは、MIT Licenseとします
■更新履歴
<pre> v1.9 ・[update] scrcpyを v3.2に更新 ・[add] scrcpyの更新で、音声出力がscrcpy内蔵方式でもデバイス側から音を出せるようになった(デバイスのandroidバージョンが13以降の場合) ・[change] scrcpy内蔵の音声出力で音量を調整できるようにした ・[fix] WM_RUNSCRSNDCPY受信時に、既にscrcpyを実行していれば無視するようにした ・[add] 同一フォルダ内に "デバイスのserial名.txt"が存在するときに、txtに書かれた adbコマンドを実行するようにした ・[fix] scrcpyのウィンドウを閉じたり、スリープから復帰したときに、scrsndcpyがフリーズするバグを修正 ・[misc] display-buffer が video-buffer に変更になったので修正 ・[misc] ダイアログの文章を修正 v1.5 ・[update] scrcpyを v2.4に更新 ・[add] デバイス側で物理的なHIDキーボードをシミュレートする設定を追加 ・[add] 音声の出力方法を scrcpy内臓方式、か sndcpyを別途実行する方式か選択できるようにした ・[change] デフォルトの音声出力方法を scrcpy内臓方式に変更 ・[add] Ctrl+Enter で 1,1地点をタップするようにした (Enterキーでキーボード入力画面を出られない時があるため) ・[add] "Native resolution"ボタンを追加 v1.4 ・[fix] scrcpyの実行に失敗したときに"adb kill-server"を実行して再度リトライするようにした ・[fix] "デバイスへWi-Fi経由での接続を行えるようにする"オプションが無効でも実行されていたのを修正 ・[fix] _ScrcpyStart()が接続失敗を返すようにした ・[change] sndcpyへの接続リトライ数を20から10に変更 ・[change] sndcpyへの接続リトライ時、sndcpyのアクティビティ起動オプションに "--activity-clear-top"を追加 ・[change] C++14からC++17へ更新 ・[add] スクリーンショット機能を追加 (Screenshotボタン右クリックで保存先フォルダを開きます) ・[change] スクリーンショットを別スレッドで実行するように変更 ・[change] sndcpyへの接続リトライ数を10から15に変更 (リトライ時は6とか7回目に接続されることがあるので) ・[change] m_buffer.clear()の処理は、"(m_maxBufferSampleCount * 3) < maxSample"となったときに変更 (今までより早くバッファがクリアされるようになった) ・[change] 音声の再生は scrcpy.exe側で行うようにした ・[update] scrcpyを 1.25 に更新 v1.3 ・[update] scrcpyを 1.24 に更新 ・[update] sndcpyを 1.1 に更新 ・[fix] delayFrameで scrcpyの更新に追従 (フックするdll名を変更 avutil-56.dll -> avutil-57.dll) ・[fix] 設定ダイアログで、"ミラーリング開始時にデバイスの音声をミュートする"設定が保存されなかったのを修正 ・[misc] turnScreenOffのデフォルトを false に変更 ・[change] 最初に [Screen Sound Copy]実行したときに表示されるウィンドウの位置を変更 (タイトルバーがモニター外に隠れないようにした) ・[fix] スリープ復帰時の再接続処理を二重実行しないように修正 ・[fix] 起動時に"adb start-server"を実行しないようにした (scrcpyを更新すると起動しなくなってしまうので) ・[change] sndcpy実行時にAndroid側の確認ダイアログが出なくなった ・[fix] sndcpyへの接続時にリトライ処理を追加 ・[fix] 音声再生停止時の画面点灯状態の確認に"Display Power: state"から"mWakefulness=Awake"かどう確認するように変更 ・[change] 音声再生時の初回バッファ削除時間を2秒から1秒に変更 ・[change] sndcpyのアンインストール処理を省いた ・[fix] Android11でも Mute/UnMute/Toggle Mute できるようにした ・[add] "adb kill-server.bat" を追加 (adbの調子悪い時に使う) v1.2 ・[update] 開発環境を VisualStudio 2019 から VisualStudio 2022 へ移行 ・[update] scrcpy を 1.20 に更新 ・[add] スリープからの復帰時に自動的にデバイスへ再接続する オプションを追加 ・[add] 画面のリサイズを禁止する オプションを追加 ・[add] toggle muteで、PCとデバイスのミュート状態を反転させる オプションを追加 ・[add] ビデオバッファのオプションを追加 ・[add] 一定時間ミュートが続く、かつ、画面がオフの時にPC側での音声再生を止めるようにした (PCのスリープ移行を妨げてしまうことへの対策) ・[fix] デバイスに接続したまま scrsndcpyを終了させると、強制終了するのを修正 ・[fix] サウンドデバイスの共有モードで使用されるサンプルレートとビットの深さが、"16ビット、48000 Hz"ではないときに、音の再生に失敗する問題を修正 ・[change] PUTLOGは、メインスレッドで実行するように変更 ・[fix] 自動実行は2秒後に実行するように変更 (起動してすぐは adb.exeの起動などでデバイスの接続が切れる場合があるので) ・[fix] デバイスの切断時も Streaming状態を解除するようにした ・[add] デバイスが、縦画面から横画面になったときに、設定した画面サイズに復帰させるようにした ・[fix] 接続失敗時に、プッシュボタンが押された状態になっているのを修正 ・[fix] Screen Sound Copy実行・終了時に、sndcpyを一度アンインストールする処理を追加 (認証の自動許可処理が早くなった) ・[add] funcStartSndcpy失敗時に adb.exe kill-server start-serverする処理を追加 ・[add] WM_RUN_SCRSNDCPY = WM_APP + 10で外部からScreen Sound Copyを実行できるようにした v1.0 ・公開 </pre>Related Skills
node-connect
353.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
353.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
353.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
