【OculusQuest】×【scrcpy】バッチ叩けばOK!簡単ミラーリング


ミラーリング

2019/08/10 時点では提供元不明のアプリをOculus公式のミラーリング機能で
ミラーリングすることはできません、、、

(2019/09/17 追記)
いつの間にかできるようになってました。。。やったね!!!

なので、みなさんALVRやscrcpy1などを利用されていることだと思います。

私もその一人なのですが、
コマンドの入力に時間がかかってデモの時にあたふたしたのでバッチを作りました。
これでチンパンの私も一瞬にしてドヤ顔ミラーリングができます。

バッチの作り方

※Windows専用となります。

念のため、「バッチってどうやって作るねん」っていう数週間前の私と同じ方向けに作り方も書きます。

テキストエディタ(メモ帳など)に自動化したい処理を書いて、ファイル名のtxtの部分をbatに変えます

終わりです。あとは保存して、使うときはダブルクリックでOKです。

作ったバッチ

作ったといっても先駆者の方2のバッチをかき集めただけですが、
scrcpyの接続3まで自動化したものは探しきれなかったので作りました。

使ってみると今までポチポチ入力してたのがアホらしくなる便利さでした。
QuestとPCをケーブルで接続した状態でバッチを実行します。

adb disconnect

for /F "usebackq delims=" %%s in (`adb shell "ifconfig wlan0 | grep 'inet addr:' | sed -e 's/^.*inet addr://' -e 's/ .*//'"`) DO set ip=%%s
echo %ip%
adb tcpip 5555
adb connect %ip%:5555
adb devices

choice /c YN /m "接続に成功しましたか?成功した場合はケーブルを抜いてください"
@echo off
if errorlevel 2 goto :no
if errorlevel 1 goto :yes

:no
echo 終了します。接続を確認して再度バッチを起動してください。
pause
exit /b

:yes
echo 5秒後に起動します。

cd "ファイルの保存場所\scrcpy-win64-v1.10"

:LOOP
    timeout /T 5 > NUL
    adb wait-for-device
    scrcpy -s %ip%:5555 -c 1000:1000:110:220 
goto :LOOP


2019/09/17 修正

USBケーブルを抜くタイミングが早いと、Scrcpyの立ち上げに失敗する
というのを発見しました。(私のPC上での再現性は非常に高かったです)

なのでYキーを押してから、5秒後にScrcpyを立ち上げるように変更しました。

あとコメントで@shiena さんからアドバイス頂いてた、
adb wait-for-device と 接続のループを取り入れてます。(ありがとうございます!!!)

また、複数台同じネットワークにスマホや同様のデバイスが接続されている場合は、
「どれに接続したらええんですか?」と怒られます。

なのでScrcpyを立ち上げる際に、これですよ~ってのを教えてあげてます。
-s %ip%:5555の部分です。どのデバイスか指定してます。

scrcpy -s %ip%:5555 -c 1000:1000:110:220 

ただ、adb connectの段階でデバイスを指定しないと意味がないかもしれません。
(よくわかってないので詳しい方「それ意味ないよ」とかコメントください)

adb server version (40) doesn't match this client (41); killing

バージョンの違いを怒られ続けていました。
「なんかよくわからんけど動くからヨシ!」状態だったので調べました。
Stackoverflowに解決方法がありました。

Android のSDKフォルダ(私はここにありました→ C:\Users\ユーザー\AppData\Local\Android\Sdk\platform-tools)
からファイルを三つほどパクればOKです。

adbサーバーが立ちあがった状態でコピーしようとすると、「まだ動いてるからやめて」って言われるので、
adb kill-server してからコピーしましょう。


使い方は指示に従うだけです。
事前に、最後の方のcd以下にscrcpyの保存先ディレクトリを貼り付ける作業だけ行います。

下記の箇所で
普通にscrcpyを起動すると左右のディスプレイがそのまま二画面で映ってしまうのを
切り取って一画面のみ表示しています。
scrcpy -c 1000:1000:110:220

万が一、下記のエラーコードが表示された場合は接続に失敗しているので
きちんと接続されていたか、ケーブルを抜くタイミングが正しいかなどを
確認してください。