Compare commits

..

1 Commits

Author SHA1 Message Date
aruko-210
28cfaf08e8 Add Japanese translation for README.md
PR #2195 <https://github.com/Genymobile/scrcpy/pull/2195>

Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-03-16 22:01:29 +01:00
14 changed files with 224 additions and 218 deletions

129
BUILD.md
View File

@@ -2,43 +2,11 @@
Here are the instructions to build _scrcpy_ (client and server).
You may want to build only the client: the server binary, which will be pushed
to the Android device, does not depend on your system and architecture. In that
case, use the [prebuilt server] (so you will not need Java or the Android SDK).
## Simple
If you just want to install the latest release from `master`, follow this
simplified process.
First, you need to install the required packages:
```bash
# for Debian/Ubuntu
sudo apt install ffmpeg libsdl2-2.0-0 adb wget \
gcc git pkg-config meson ninja-build \
libavcodec-dev libavformat-dev libavutil-dev libsdl2-dev
```
Then clone the repo and execute the installation script
([source](install_release.sh)):
```bash
git clone https://github.com/Genymobile/scrcpy
cd scrcpy
./install_release.sh
```
When a new release is out, update the repo and reinstall:
```bash
git pull
./install_release.sh
```
To uninstall:
```bash
sudo ninja -Cbuild-auto uninstall
```
[prebuilt server]: #prebuilt-server
## Branches
@@ -92,7 +60,8 @@ sudo apt install ffmpeg libsdl2-2.0-0 adb
# client build dependencies
sudo apt install gcc git pkg-config meson ninja-build \
libavcodec-dev libavformat-dev libavutil-dev libsdl2-dev
libavcodec-dev libavformat-dev libavutil-dev \
libsdl2-dev
# server build dependencies
sudo apt install openjdk-11-jdk
@@ -204,12 +173,12 @@ brew install pkg-config meson
```
Additionally, if you want to build the server, install Java 8 from Caskroom, and
make it available from the `PATH`:
make it avaliable from the `PATH`:
```bash
brew tap homebrew/cask-versions
brew install adoptopenjdk/openjdk/adoptopenjdk11
export JAVA_HOME="$(/usr/libexec/java_home --version 1.11)"
brew cask install adoptopenjdk/openjdk/adoptopenjdk8
export JAVA_HOME="$(/usr/libexec/java_home --version 1.8)"
export PATH="$JAVA_HOME/bin:$PATH"
```
@@ -220,27 +189,8 @@ See [pierlon/scrcpy-docker](https://github.com/pierlon/scrcpy-docker).
## Common steps
**As a non-root user**, clone the project:
```bash
git clone https://github.com/Genymobile/scrcpy
cd scrcpy
```
### Build
You may want to build only the client: the server binary, which will be pushed
to the Android device, does not depend on your system and architecture. In that
case, use the [prebuilt server] (so you will not need Java or the Android SDK).
[prebuilt server]: #option-2-use-prebuilt-server
#### Option 1: Build everything from sources
Install the [Android SDK] (_Android Studio_), and set `ANDROID_SDK_ROOT` to its
directory. For example:
If you want to build the server, install the [Android SDK] (_Android Studio_),
and set `ANDROID_SDK_ROOT` to its directory. For example:
[Android SDK]: https://developer.android.com/studio/index.html
@@ -253,11 +203,20 @@ export ANDROID_SDK_ROOT=~/Library/Android/sdk
set ANDROID_SDK_ROOT=%LOCALAPPDATA%\Android\sdk
```
If you don't want to build the server, use the [prebuilt server].
Clone the project:
```bash
git clone https://github.com/Genymobile/scrcpy
cd scrcpy
```
Then, build:
```bash
meson x --buildtype release --strip -Db_lto=true
ninja -Cx # DO NOT RUN AS ROOT
ninja -Cx
```
_Note: `ninja` [must][ninja-user] be run as a non-root user (only `ninja
@@ -266,27 +225,9 @@ install` must be run as root)._
[ninja-user]: https://github.com/Genymobile/scrcpy/commit/4c49b27e9f6be02b8e63b508b60535426bd0291a
#### Option 2: Use prebuilt server
### Run
- [`scrcpy-server-v1.17`][direct-scrcpy-server]
_(SHA-256: 11b5ad2d1bc9b9730fb7254a78efd71a8ff46b1938ff468e47a21b653a1b6725)_
[direct-scrcpy-server]: https://github.com/Genymobile/scrcpy/releases/download/v1.17/scrcpy-server-v1.17
Download the prebuilt server somewhere, and specify its path during the Meson
configuration:
```bash
meson x --buildtype release --strip -Db_lto=true \
-Dprebuilt_server=/path/to/scrcpy-server
ninja -Cx # DO NOT RUN AS ROOT
```
The server only works with a matching client version (this server works with the
`master` branch).
### Run without installing:
To run without installing:
```bash
./run x [options]
@@ -301,16 +242,32 @@ After a successful build, you can install _scrcpy_ on the system:
sudo ninja -Cx install # without sudo on Windows
```
This installs three files:
This installs two files:
- `/usr/local/bin/scrcpy`
- `/usr/local/share/scrcpy/scrcpy-server`
- `/usr/local/share/man/man1/scrcpy.1`
Just remove them to "uninstall" the application.
You can then [run](README.md#run) _scrcpy_.
### Uninstall
## Prebuilt server
- [`scrcpy-server-v1.17`][direct-scrcpy-server]
_(SHA-256: 11b5ad2d1bc9b9730fb7254a78efd71a8ff46b1938ff468e47a21b653a1b6725_
[direct-scrcpy-server]: https://github.com/Genymobile/scrcpy/releases/download/v1.17/scrcpy-server-v1.17
Download the prebuilt server somewhere, and specify its path during the Meson
configuration:
```bash
sudo ninja -Cx uninstall # without sudo on Windows
meson x --buildtype release --strip -Db_lto=true \
-Dprebuilt_server=/path/to/scrcpy-server
ninja -Cx
sudo ninja -Cx install
```
The server only works with a matching client version (this server works with the
`master` branch).

View File

@@ -211,7 +211,7 @@ There are two [frames][video_buffer] simultaneously in memory:
- the **rendering** frame, rendered in a texture from the main thread.
When a new decoded frame is available, the decoder _swaps_ the decoding and
rendering frame (with proper synchronization). Thus, it immediately starts
rendering frame (with proper synchronization). Thus, it immediatly starts
to decode a new frame while the main thread renders the last one.
If a [recorder] is present (i.e. `--record` is enabled), then it muxes the raw

View File

@@ -69,7 +69,10 @@ Anda juga bisa [membangun aplikasi secara manual][BUILD] (jangan khawatir, tidak
Untuk Windows, untuk kesederhanaan, arsip prebuilt dengan semua dependensi (termasuk `adb`) tersedia :
- [README](README.md#windows)
- [`scrcpy-win64-v1.16.zip`][direct-win64]
_(SHA-256: 3f30dc5db1a2f95c2b40a0f5de91ec1642d9f53799250a8c529bc882bc0918f0)_
[direct-win64]: https://github.com/Genymobile/scrcpy/releases/download/v1.16/scrcpy-win64-v1.16.zip
Ini juga tersedia di [Chocolatey]:

View File

@@ -2,7 +2,12 @@ _Only the original [README](README.md) is guaranteed to be up-to-date._
# scrcpy (v1.17)
このアプリケーションはUSB(もしくは[TCP/IP経由][article-tcpip])で接続されたAndroidデバイスの表示と制御を提供します。このアプリケーションは _root_ でのアクセスを必要としません。このアプリケーションは _GNU/Linux__Windows_ そして _macOS_ 上で動作します。
[他の言語で読む](#translations)
このアプリケーションはUSB(もしくは[TCP/IP経由][article-tcpip])で接続された
Androidデバイスの表示と制御を提供します。このアプリケーションは _root_ でのアクセス
を必要としません。
このアプリケーションは _GNU/Linux_, _Windows_ そして _macOS_ 上で動作します。
![screenshot](assets/screenshot-debian-600.jpg)
@@ -10,10 +15,10 @@ _Only the original [README](README.md) is guaranteed to be up-to-date._
- **軽量** (ネイティブ、デバイス画面表示のみ)
- **パフォーマンス** (30~60fps)
- **クオリティ** (1920x1080以上)
- **クオリティ** (1920x1018以上)
- **低遅延** ([35~70ms][lowlatency])
- **短い起動時間** (初回画像を1秒以内に表示)
- **非侵入型** (デバイスに何もインストールされていない状態になる)
- **非侵入型** (デバイスに何もインストールされない)
[lowlatency]: https://github.com/Genymobile/scrcpy/pull/646
@@ -26,7 +31,8 @@ Androidデバイスで[adbデバッグが有効][enable-adb]であること。
[enable-adb]: https://developer.android.com/studio/command-line/adb.html#Enabling
一部のAndroidデバイスでは、キーボードとマウスを使用して制御する[追加オプション][control]を有効にする必要がある。
一部のAndroidデバイスでは、キーボードとマウスを使用して制御する[追加オプション][control]
を有効にする必要がある。
[control]: https://github.com/Genymobile/scrcpy/issues/70#issuecomment-373286323
@@ -71,7 +77,10 @@ Gentoo用[Ebuild]が利用可能: [`scrcpy`][ebuild-link]
Windowsでは簡単に、`adb`を含む)すべての依存関係を構築済みのアーカイブを利用可能です。
- [README](README.md#windows)
- [`scrcpy-win64-v1.17.zip`][direct-win64]
_(SHA-256: 8b9e57993c707367ed10ebfe0e1ef563c7a29d9af4a355cd8b6a52a317c73eea)_
[direct-win64]: https://github.com/Genymobile/scrcpy/releases/download/v1.17/scrcpy-win64-v1.17.zip
[Chocolatey]でも利用可能です:
@@ -79,14 +88,14 @@ Windowsでは簡単に、`adb`を含む)すべての依存関係を構築
```bash
choco install scrcpy
choco install adb # まだ入手していない場合
choco install adb # if you don't have it yet
```
[Scoop]でも利用可能です:
```bash
scoop install scrcpy
scoop install adb # まだ入手していない場合
scoop install adb # if you don't have it yet
```
[Scoop]: https://scoop.sh
@@ -136,16 +145,18 @@ scrcpy --help
#### サイズ削減
Androidデバイスを低解像度でミラーリングする場合、パフォーマンス向上に便利な場合があります。
Androidデバイスを低解像度でミラーリングする場合、パフォーマンス向上に便利な
場合があります。
幅と高さをある値(例1024)に制限するには:
幅と高さをある値に制限するには(例1024):
```bash
scrcpy --max-size 1024
scrcpy -m 1024 # 短縮版
scrcpy -m 1024 # short version
```
一方のサイズはデバイスのアスペクト比が維持されるように計算されます。この方法では、1920x1080のデバイスでは1024x576にミラーリングされます。
一方のサイズはデバイスのアスペクト比が維持されるように計算されます。
この方法では、1920x1080のデバイスでは1024x576にミラーリングされます。
#### ビットレート変更
@@ -154,7 +165,7 @@ scrcpy -m 1024 # 短縮版
```bash
scrcpy --bit-rate 2M
scrcpy -b 2M # 短縮版
scrcpy -b 2M # short version
```
#### フレームレート制限
@@ -165,7 +176,8 @@ scrcpy -b 2M # 短縮版
scrcpy --max-fps 15
```
この機能はAndroid 10からオフィシャルサポートとなっていますが、以前のバージョンでも動作する可能性があります。
この機能はAndroid 10からオフィシャルサポートとなっていますが、以前のバージョンでも
動作する可能性があります。
#### トリミング
@@ -174,7 +186,7 @@ scrcpy --max-fps 15
これは、例えばOculus Goの片方の目をミラーリングする場合に便利です。:
```bash
scrcpy --crop 1224:1440:0:0 # オフセット位置(0,0)で1224x1440
scrcpy --crop 1224:1440:0:0 # 1224x1440 at offset (0,0)
```
もし`--max-size`も指定されている場合、トリミング後にサイズ変更が適用されます。
@@ -184,27 +196,30 @@ scrcpy --crop 1224:1440:0:0 # オフセット位置(0,0)で1224x1440
ミラーリングの向きをロックするには:
```bash
scrcpy --lock-video-orientation 0 # 自然な向き
scrcpy --lock-video-orientation 1 # 90°反時計回り
scrcpy --lock-video-orientation 0 # natural orientation
scrcpy --lock-video-orientation 1 # 90° counterclockwise
scrcpy --lock-video-orientation 2 # 180°
scrcpy --lock-video-orientation 3 # 90°時計回り
scrcpy --lock-video-orientation 3 # 90° clockwise
```
この設定は録画の向きに影響します。
[ウィンドウは独立して回転することもできます](#回転)。
[ウィンドウは独立して回転することもできます](#rotation)。
#### エンコーダ
いくつかのデバイスでは一つ以上のエンコーダを持ちます。それらのいくつかは、問題やクラッシュを引き起こします。別のエンコーダを選択することが可能です:
いくつかのデバイスでは一つ以上のエンコーダを持ちます。それらのいくつかは、
問題やクラッシュを引き起こします。
別のエンコーダを選択することが可能です:
```bash
scrcpy --encoder OMX.qcom.video.encoder.avc
```
利用可能なエンコーダをリストするために、無効なエンコーダ名を渡すことができます。エラー表示で利用可能なエンコーダを提供します。
利用可能なエンコーダをリストするために、無効なエンコーダ名を渡すことができます。
エラーでは利用可能なエンコーダを提供します。
```bash
scrcpy --encoder _
@@ -227,9 +242,11 @@ scrcpy -Nr file.mkv
# Ctrl+Cで録画を中断する
```
"スキップされたフレーム"は(パフォーマンス上の理由で)リアルタイムで表示されなくても録画されます
"スキップされたフレーム"はリアルタイムで表示されなくても録画されます
(パフォーマンス上の理由)。
フレームはデバイス上で _タイムスタンプされる_ ため [パケット遅延のバリエーション] は録画されたファイルに影響を与えません。
フレームはデバイス上で _タイムスタンプされる_ ため [パケット遅延のバリエーション] は
録画されたファイルに影響を与えません。
[パケット遅延のバリエーション]: https://en.wikipedia.org/wiki/Packet_delay_variation
@@ -238,10 +255,12 @@ scrcpy -Nr file.mkv
#### ワイヤレス
_Scrcpy_ はデバイスとの通信に`adb`を使用します。そして`adb`はTCP/IPを介しデバイスに[接続]することができます:
_Scrcpy_ はデバイスとの通信に`adb`を使用します。そして`adb`はTCP/IPを介し
デバイスに[接続]することができます:
1. あなたのコンピュータと同じWi-Fiに接続します。
2. あなたのIPアドレスを取得します。設定 → 端末情報 → ステータス情報、もしくは、このコマンドを実行します:
2. あなたのIPアドレスを取得します。設定 → 端末情報 → ステータス情報、
もしくは、このコマンドを実行します:
```bash
adb shell ip route | awk '{print $9}'
@@ -253,11 +272,11 @@ _Scrcpy_ はデバイスとの通信に`adb`を使用します。そして`adb`
`adb connect DEVICE_IP:5555` _(`DEVICE_IP`は置き換える)_
6. 通常通り`scrcpy`を実行します。
この方法はビットレートと解像度を減らすのにおそらく有用です:
この方法はビットレートと定義を減らすのにおそらく有用です:
```bash
scrcpy --bit-rate 2M --max-size 800
scrcpy -b2M -m800 # 短縮版
scrcpy -b2M -m800 # short version
```
[接続]: https://developer.android.com/studio/command-line/adb.html#wireless
@@ -265,18 +284,19 @@ scrcpy -b2M -m800 # 短縮版
#### マルチデバイス
もし`adb devices`でいくつかのデバイスがリストされる場合、 _シリアルナンバー_ を指定する必要があります:
もし`adb devices`でいくつかのデバイスがリストされる場合、 _シリアルナンバー_ を
指定する必要があります:
```bash
scrcpy --serial 0123456789abcdef
scrcpy -s 0123456789abcdef # 短縮版
scrcpy -s 0123456789abcdef # short version
```
デバイスがTCP/IPを介して接続されている場合:
```bash
scrcpy --serial 192.168.0.1:5555
scrcpy -s 192.168.0.1:5555 # 短縮版
scrcpy -s 192.168.0.1:5555 # short version
```
複数のデバイスに対して、複数の _scrcpy_ インスタンスを開始することができます。
@@ -293,12 +313,13 @@ autoadb scrcpy -s '{}'
#### SSHトンネル
リモートデバイスに接続するため、ローカル`adb`クライアントからリモート`adb`サーバーへ接続することが可能です(同じバージョンの _adb_ プロトコルを使用している場合):
リモートデバイスに接続するため、ローカル`adb`クライアントからリモート`adb`サーバーへ
接続することが可能です(同じバージョンの _adb_ プロトコルを使用している場合):
```bash
adb kill-server # 5037ポートのローカルadbサーバーを終了する
adb kill-server # kill the local adb server on 5037
ssh -CN -L5037:localhost:5037 -R27183:localhost:27183 your_remote_computer
# オープンしたままにする
# keep this open
```
他の端末から:
@@ -307,12 +328,13 @@ ssh -CN -L5037:localhost:5037 -R27183:localhost:27183 your_remote_computer
scrcpy
```
リモートポート転送の有効化を回避するためには、代わりに転送接続を強制することができます(`-R`の代わりに`-L`を使用することに注意):
リモートポート転送の有効化を回避するためには、代わりに転送接続を
強制することができます(`-R`の代わりに`-L`を使用することに注意):
```bash
adb kill-server # 5037ポートのローカルadbサーバーを終了する
adb kill-server # kill the local adb server on 5037
ssh -CN -L5037:localhost:5037 -L27183:localhost:27183 your_remote_computer
# オープンしたままにする
# keep this open
```
他の端末から:
@@ -368,7 +390,7 @@ scrcpy --always-on-top
```bash
scrcpy --fullscreen
scrcpy -f # 短縮版
scrcpy -f # short version
```
フルスクリーンは、次のコマンドで動的に切り替えることができます <kbd>MOD</kbd>+<kbd>f</kbd>
@@ -388,18 +410,24 @@ scrcpy --rotation 1
- `2`: 180°
- `3`: 90° 時計回り
回転は次のコマンドで動的に変更することができます。 <kbd>MOD</kbd>+<kbd>←</kbd>_(左)_ 、 <kbd>MOD</kbd>+<kbd>→</kbd>_(右)_
回転は次のコマンドで動的に変更することができます。 <kbd>MOD</kbd>+<kbd>←</kbd>
_(左)_ 、 <kbd>MOD</kbd>+<kbd>→</kbd> _(右)_
_scrcpy_ は3つの回転を管理することに注意:
- <kbd>MOD</kbd>+<kbd>r</kbd>はデバイスに縦向きと横向きの切り替えを要求する(現在実行中のアプリで要求している向きをサポートしていない場合、拒否することがある)
- [`--lock-video-orientation`](#ビデオの向きをロックする)は、ミラーリングする向きを変更する(デバイスからPCへ送信される向き)。録画に影響します。
- `--rotation` (もしくは<kbd>MOD</kbd>+<kbd>←</kbd>/<kbd>MOD</kbd>+<kbd>→</kbd>)は、ウィンドウのコンテンツのみを回転します。これは表示にのみに影響し、録画には影響しません。
- <kbd>MOD</kbd>+<kbd>r</kbd>はデバイスに縦向きと横向きの切り替えを要求する
(現在実行中のアプリで要求している向きをサポートしている場合、拒否する場合がある)
- [`--lock-video-orientation`](#lock-video-orientation)は、ミラーリングする向きを
変更する(デバイスからPCへ送信される向き)。録画に影響します。
- `--rotation` (もしくは<kbd>MOD</kbd>+<kbd>←</kbd>/<kbd>MOD</kbd>+<kbd>→</kbd>)
は、ウィンドウのコンテンツのみを回転します。これは表示にのみに影響し、録画
には影響しません。
### 他のミラーリングオプション
#### Read-only リードオンリー
制御を無効にするには(デバイスと対話する全てのもの:入力キー、マウスイベント、ファイルのドラッグ&ドロップ):
制御を無効にするには(デバイスと対話する全てのもの:入力キー、マウスイベント、ファイル
のドラッグ&ドロップ):
```bash
scrcpy --no-control
@@ -420,7 +448,8 @@ scrcpy --display 1
adb shell dumpsys display # search "mDisplayId=" in the output
```
セカンダリディスプレイは、デバイスが少なくともAndroid 10の場合にコントロール可能です。(それ以外ではリードオンリーでミラーリングされます)
セカンダリディスプレイは、デバイスが少なくともAndroid 10の場合にコントロール可能です。
(それ以外ではリードオンリーでミラーリングされます)
#### 起動状態にする
@@ -432,11 +461,12 @@ scrcpy --stay-awake
scrcpy -w
```
scrcpyが閉じられた時、初期状態に復元されます。
初期状態はscrcpyが閉じられた時に保存されます。
#### 画面OFF
コマンドラインオプションを使用することで、ミラーリングの開始時にデバイスの画面をOFFにすることができます:
コマンドラインオプションを使用することで、ミラーリングの開始時にデバイスの画面を
OFFにすることができます:
```bash
scrcpy --turn-screen-off
@@ -447,7 +477,11 @@ scrcpy -S
元に戻すには、<kbd>MOD</kbd>+<kbd>Shift</kbd>+<kbd>o</kbd>を押します。
Androidでは、`POWER`ボタンはいつでも画面を表示します。便宜上、`POWER`がscrcpyを介して(右クリックもしくは<kbd>MOD</kbd>+<kbd>p</kbd>を介して)送信される場合、(ベストエフォートベースで)少し遅れて、強制的に画面を非表示にします。ただし、物理的な`POWER`ボタンを押した場合は、画面は表示されます。
Androidでは、`POWER`ボタンはいつでも画面を表示します。
便宜上、`POWER`がscrcpyを介して(右クリックもしくは<kbd>MOD</kbd>+<kbd>p</kbd>を
介して)送信される場合、(ベストエフォートベースで)少し遅れて、強制的に画面を
非表示にします。
物理的な`POWER`ボタンを押しても画面は表示されます。
このオプションはデバイスがスリープしないようにすることにも役立ちます:
@@ -459,7 +493,8 @@ scrcpy -Sw
#### 期限切れフレームをレンダリングする
初期状態では、待ち時間を最小限にするために、_scrcpy_ は最後にデコードされたフレームをレンダリングし、前のフレームを削除します。
初期状態では、待ち時間を最小限にするために、_scrcpy_ は最後にデコードされたフレーム
を使用可能にレンダリングし、前のフレームを削除します。
全フレームのレンダリングを強制するには(待ち時間が長くなる可能性があります):
@@ -473,7 +508,8 @@ scrcpy --render-expired-frames
Androidはこの機能を _開発者オプション_ で提供します。
_Scrcpy_ は開始時にこの機能を有効にし、終了時に初期値を復元するオプションを提供します:
_Scrcpy_ は開始時にこの機能を有効にし、終了時に初期値を復元するオプションを
提供します:
```bash
scrcpy --show-touches
@@ -485,7 +521,8 @@ scrcpy -t
#### スクリーンセーバー無効
初期状態では、scrcpyはコンピュータ上でスクリーンセーバーが実行される事を妨げません。
初期状態では、scrcpyはコンピュータ上でスクリーンセーバーが実行される事を
妨げません。
これを無効にするには:
@@ -500,39 +537,60 @@ scrcpy --disable-screensaver
<kbd>MOD</kbd>+<kbd>r</kbd>を押すことで、縦向きと横向きを切り替えます。
フォアグラウンドのアプリケーションが要求された向きをサポートしている場合のみ回転することに注意してください。
フォアグラウンドのアプリケーションが要求された向きをサポートしている場合のみ
回転することに注意してください。
#### コピー-ペースト
Androidのクリップボードが変更される度に、コンピュータのクリップボードに自動的に同期されます。
Androidのクリップボードが変更される度に、コンピュータのクリップボードに
自動的に同期されます。
<kbd>Ctrl</kbd>のショートカットは全てデバイスに転送されます。特に:
- <kbd>Ctrl</kbd>+<kbd>c</kbd> 通常はコピーします
- <kbd>Ctrl</kbd>+<kbd>x</kbd> 通常はカットします
- <kbd>Ctrl</kbd>+<kbd>v</kbd> 通常はペーストします(コンピュータとデバイスのクリップボードが同期された後)
- <kbd>Ctrl</kbd>+<kbd>v</kbd> 通常はペーストします(コンピュータとデバイスの
クリップボードが同期された後)
通常は期待通りに動作します。
しかしながら、実際の動作はアクティブなアプリケーションに依存します。例えば、_Termux_ は代わりに<kbd>Ctrl</kbd>+<kbd>c</kbd>でSIGINTを送信します、そして、_K-9 Mail_ は新しいメッセージを作成します。
しかしながら、実際の動作はアクティブなアプリケーションに依存します。例えば、
_Termux_ は代わりに<kbd>Ctrl</kbd>+<kbd>c</kbd>でSIGINTを送信します、そして、
_K-9 Mail_ は新しいメッセージを作成します。
このようなケースでコピー、カットそしてペーストをするには(Android 7以上でのサポートのみですが):
このようなケースでコピー、カットそしてペーストをするには(Android 7以上での
サポートのみですが):
- <kbd>MOD</kbd>+<kbd>c</kbd> `COPY`を挿入
- <kbd>MOD</kbd>+<kbd>x</kbd> `CUT`を挿入
- <kbd>MOD</kbd>+<kbd>v</kbd> `PASTE`を挿入(コンピュータとデバイスのクリップボードが同期された後)
- <kbd>MOD</kbd>+<kbd>v</kbd> `PASTE`を挿入(コンピュータとデバイスの
クリップボードが同期された後)
加えて、<kbd>MOD</kbd>+<kbd>Shift</kbd>+<kbd>v</kbd>はコンピュータのクリップボードテキストにキーイベントのシーケンスとして挿入することを許可します。これはコンポーネントがテキストのペーストを許可しない場合(例えば _Termux_)に有用ですが、非ASCIIコンテンツを壊す可能性があります。
加えて、<kbd>MOD</kbd>+<kbd>Shift</kbd>+<kbd>v</kbd>はコンピュータの
クリップボードテキストにキーイベントのシーケンスとして挿入することを許可します。
これはコンポーネントがテキストのペーストを許可しない場合(例えば _Termux_)に
有用ですが、非ASCIIコンテンツを壊す可能性があります。
**警告:** デバイスにコンピュータのクリップボードを(<kbd>Ctrl</kbd>+<kbd>v</kbd>または<kbd>MOD</kbd>+<kbd>v</kbd>を介して)ペーストすることは、デバイスのクリップボードにコンテンツをコピーします。結果としてどのAndoridアプリケーションもそのコンテンツを読み取ることができます。機密性の高いコンテンツ(例えばパスワードなど)をこの方法でペーストすることは避けてください。
**警告:** デバイスにコンピュータのクリップボードを(<kbd>Ctrl</kbd>+<kbd>v</kbd>
または<kbd>MOD</kbd>+<kbd>v</kbd>を介して)ペーストすることは、デバイスの
クリップボードにコンテンツをコピーします。結果としてどのAndoridアプリケーションも
そのコンテンツを読み取ることができます。機密性の高いコンテンツ(例えばパスワードなど)
をこの方法でペーストすることは避けてください。
プログラムでデバイスのクリップボードを設定した場合、一部のデバイスは期待どおりに動作しません。`--legacy-paste`オプションは、コンピュータのクリップボードテキストをキーイベントのシーケンスとして挿入するため(<kbd>MOD</kbd>+<kbd>Shift</kbd>+<kbd>v</kbd>と同じ方法)、<kbd>Ctrl</kbd>+<kbd>v</kbd>と<kbd>MOD</kbd>+<kbd>v</kbd>の動作の変更を提供します。
プログラムでデバイスのクリップボードを設定した場合、一部のデバイスは期待どおりに
動作しません。`--legacy-paste`オプションは、コンピュータのクリップボードテキストを
キーイベントのシーケンスとして挿入するため(<kbd>MOD</kbd>+<kbd>Shift</kbd>
+<kbd>v</kbd>と同じ方法)、<kbd>Ctrl</kbd>+<kbd>v</kbd>と
<kbd>MOD</kbd>+<kbd>v</kbd>の動作の変更を提供します。
#### ピンチしてズームする
"ピンチしてズームする"をシミュレートするには: <kbd>Ctrl</kbd>+_クリック&移動_
"ピンチしてズームする"をシミュレートするには: <kbd>Ctrl</kbd>+_click-and-move_
より正確にするには、左クリックボタンを押している間、<kbd>Ctrl</kbd>を押したままにします。左クリックボタンを離すまで、全てのマウスの動きは、(アプリでサポートされている場合)画面の中心を基準として、コンテンツを拡大縮小および回転します。
より正確にするには、左クリックボタンを押している間、<kbd>Ctrl</kbd>を
押したままにします。左クリックボタンを離すまで、全てのマウスの動きは、(アプリでサポート
されている場合)画面の中心を基準として、コンテンツを拡大縮小および回転します。
具体的には、scrcpyは画面の中央を反転した位置にある"バーチャルフィンガー"から追加のタッチイベントを生成します。
具体的には、scrcpyは画面の中央を反転した位置にある"バーチャルフィンガー"から
追加のタッチイベントを生成します。
#### テキストインジェクション環境設定
@@ -541,9 +599,11 @@ Androidのクリップボードが変更される度に、コンピュータの
- _key events_ はキーを押したときと離したことを通知します。
- _text events_ はテキストが入力されたことを通知します。
初期状態で、文字はキーイベントで挿入されるため、キーボードはゲームで期待通りに動作します(通常はWASDキー)。
初期状態で、文字はキーイベントで挿入されるため、キーボードはゲームで期待通りに
動作します(通常はWASDキー)。
しかし、これは[問題を引き起こす][prefertext]かもしれません。もしこのような問題が発生した場合は、この方法で回避できます:
しかし、これは[問題を引き起こす][prefertext]かもしれません。もしこのような問題が
発生した場合は、この方法で回避できます:
```bash
scrcpy --prefer-text
@@ -557,7 +617,9 @@ scrcpy --prefer-text
#### キーの繰り返し
初期状態では、キーの押しっぱなしは繰り返しのキーイベントを生成します。これらのイベントが使われない場合でも、この方法は一部のゲームでパフォーマンスの問題を引き起す可能性があります。
初期状態では、キーの押しっぱなしは繰り返しのキーイベントを生成します。
これらのイベントが使われない場合でも、この方法は一部のゲームでパフォーマンスの
問題を引き起す可能性があります。
繰り返しのキーイベントの転送を回避するためには:
@@ -568,7 +630,9 @@ scrcpy --no-key-repeat
#### 右クリックと真ん中クリック
初期状態では、右クリックはバックの動作(もしくはパワーオン)を起こし、真ん中クリックではホーム画面へ戻ります。このショートカットを無効にし、代わりにデバイスへクリックを転送するには:
初期状態では、右クリックはバックの動作(もしくはパワーオン)を起こし、真ん中クリック
ではホーム画面へ戻ります。このショートカットを無効にし、代わりにデバイスへクリックを
転送するには:
```bash
scrcpy --forward-all-clicks
@@ -579,14 +643,16 @@ scrcpy --forward-all-clicks
#### APKのインストール
APKをインストールするには、(`.apk`で終わる)APKファイルを _scrcpy_ の画面にドラッグ&ドロップします。
APKをインストールするには、(`.apk`で終わる)APKファイルを _scrcpy_ の画面に
ドラッグ&ドロップします。
見た目のフィードバックはありません。コンソールにログが出力されます。
#### デバイスにファイルを送る
デバイスの`/sdcard/`ディレクトリにファイルを送るには、(APKではない)ファイルを _scrcpy_ の画面にドラッグ&ドロップします。
デバイスの`/sdcard/`ディレクトリにファイルを送るには、(APKではない)ファイルを
_scrcpy_ の画面にドラッグ&ドロップします。
見た目のフィードバックはありません。コンソールにログが出力されます。
@@ -609,15 +675,17 @@ scrcpy --push-target /sdcard/foo/bar/
## ショートカット
次のリストでは、<kbd>MOD</kbd>でショートカット変更します。初期状態では、(left)<kbd>Alt</kbd>または(left)<kbd>Super</kbd>です。
次のリストでは、<kbd>MOD</kbd>でショートカット変更します。初期状態では、
(left)<kbd>Alt</kbd>または(left)<kbd>Super</kbd>です。
これは`--shortcut-mod`で変更することができます。可能なキーは`lctrl`、`rctrl`、`lalt`、 `ralt`、 `lsuper`そして`rsuper`です。例えば:
これは`--shortcut-mod`で変更することができます。可能なキーは
`lctrl`、`rctrl`、`lalt`、 `ralt`、 `lsuper`そして`rsuper`です。例えば:
```bash
# RCtrlをショートカットとして使用します
# use RCtrl for shortcuts
scrcpy --shortcut-mod=rctrl
# ショートカットにLCtrl+LAltまたはLSuperのいずれかを使用します
# use either LCtrl+LAlt or LSuper for shortcuts
scrcpy --shortcut-mod=lctrl+lalt,lsuper
```
@@ -647,7 +715,7 @@ _<kbd>[Super]</kbd>は通常<kbd>Windows</kbd>もしくは<kbd>Cmd</kbd>キー
| 通知パネルを折りたたむ | <kbd>MOD</kbd>+<kbd>Shift</kbd>+<kbd>n</kbd>
| クリップボードへのコピー³ | <kbd>MOD</kbd>+<kbd>c</kbd>
| クリップボードへのカット³ | <kbd>MOD</kbd>+<kbd>x</kbd>
| クリップボードの同期とペースト³ | <kbd>MOD</kbd>+<kbd>v</kbd>
| クリップボードとペーストの同期³ | <kbd>MOD</kbd>+<kbd>v</kbd>
| コンピュータのクリップボードテキストの挿入 | <kbd>MOD</kbd>+<kbd>Shift</kbd>+<kbd>v</kbd>
| FPSカウンタ有効/無効(標準入出力上) | <kbd>MOD</kbd>+<kbd>i</kbd>
| ピンチしてズームする | <kbd>Ctrl</kbd>+_クリック&移動_
@@ -656,7 +724,8 @@ _¹黒い境界線を削除するため、境界線上でダブルクリック_
_²もしスクリーンがオフの場合、右クリックでスクリーンをオンする。それ以外の場合はBackを押します._
_³Android 7以上のみ._
全ての<kbd>Ctrl</kbd>+_キー_ ショートカットはデバイスに転送されます、そのためアクティブなアプリケーションによって処理されます。
全ての<kbd>Ctrl</kbd>+_キー_ ショートカットはデバイスに転送されます、
そのためアクティブなアプリケーションによって処理されます。
## カスタムパス
@@ -665,7 +734,8 @@ _³Android 7以上のみ._
ADB=/path/to/adb scrcpy
`scrcpy-server`ファイルのパスを上書きするには、`SCRCPY_SERVER_PATH`でそのパスを構成します。
`scrcpy-server`ファイルのパスを上書きするには、`SCRCPY_SERVER_PATH`で
そのパスを構成します。
[useful]: https://github.com/Genymobile/scrcpy/issues/278#issuecomment-429330345
@@ -687,7 +757,7 @@ _³Android 7以上のみ._
[BUILD]: BUILD.md
## よくある質問
## 共通の問題
[FAQ](FAQ.md)を参照してください。

View File

@@ -68,7 +68,9 @@ Gentoo에서 ,[Ebuild] 가 가능합니다 : [`scrcpy/`][ebuild-link].
윈도우 상에서, 간단하게 설치하기 위해 종속성이 있는 사전 구축된 아카이브가 제공됩니다 (`adb` 포함) :
해당 파일은 Readme원본 링크를 통해서 다운로드가 가능합니다.
- [README](README.md#windows)
- [`scrcpy-win`][direct-win]
[direct-win]: https://github.com/Genymobile/scrcpy/blob/master/README.md#windows
[어플을 직접 설치][BUILD] 할 수도 있습니다.

View File

@@ -38,18 +38,6 @@ control it using keyboard and mouse.
<a href="https://repology.org/project/scrcpy/versions"><img src="https://repology.org/badge/vertical-allrepos/scrcpy.svg" alt="Packaging status" align="right"></a>
### Summary
- Linux: `apt install scrcpy`
- Windows: [download][direct-win64]
- macOS: `brew install scrcpy`
Build from sources: [BUILD] ([simplified process][BUILD_simple])
[BUILD]: BUILD.md
[BUILD_simple]: BUILD.md#simple
### Linux
On Debian (_testing_ and _sid_ for now) and Ubuntu (20.04):
@@ -79,8 +67,9 @@ For Gentoo, an [Ebuild] is available: [`scrcpy/`][ebuild-link].
[Ebuild]: https://wiki.gentoo.org/wiki/Ebuild
[ebuild-link]: https://github.com/maggu2810/maggu2810-overlay/tree/master/app-mobilephone/scrcpy
You could also [build the app manually][BUILD] ([simplified
process][BUILD_simple]).
You could also [build the app manually][BUILD] (don't worry, it's not that
hard).
### Windows
@@ -127,18 +116,13 @@ brew install scrcpy
You need `adb`, accessible from your `PATH`. If you don't have it yet:
```bash
brew install android-platform-tools
# Homebrew >= 2.6.0
brew install --cask android-platform-tools
# Homebrew < 2.6.0
brew cask install android-platform-tools
```
It's also available in [MacPorts], which sets up adb for you:
```bash
sudo port install scrcpy
```
[MacPorts]: https://www.macports.org/
You can also [build the app manually][BUILD].
@@ -427,7 +411,7 @@ _(left)_ and <kbd>MOD</kbd>+<kbd>→</kbd> _(right)_.
Note that _scrcpy_ manages 3 different rotations:
- <kbd>MOD</kbd>+<kbd>r</kbd> requests the device to switch between portrait
and landscape (the current running app may refuse, if it does not support the
and landscape (the current running app may refuse, if it does support the
requested orientation).
- [`--lock-video-orientation`](#lock-video-orientation) changes the mirroring
orientation (the orientation of the video sent from the device to the
@@ -674,7 +658,7 @@ There is no visual feedback, a log is printed to the console.
The target directory can be changed on start:
```bash
scrcpy --push-target=/sdcard/Download/
scrcpy --push-target /sdcard/foo/bar/
```
@@ -770,6 +754,8 @@ A colleague challenged me to find a name as unpronounceable as [gnirehtet].
See [BUILD].
[BUILD]: BUILD.md
## Common issues
@@ -813,7 +799,7 @@ Read the [developers page].
This README is available in other languages:
- [Indonesian (Indonesia, `id`) - v1.16](README.id.md)
- [日本語 (Japanese, `jp`) - v1.17](README.jp.md)
- [日本語 (Japanese, `jp`) - v1.17)(README.jp.md)
- [한국어 (Korean, `ko`) - v1.11](README.ko.md)
- [português brasileiro (Brazilian Portuguese, `pt-BR`) - v1.17](README.pt-br.md)
- [简体中文 (Simplified Chinese, `zh-Hans`) - v1.17](README.zh-Hans.md)

View File

@@ -77,7 +77,10 @@ difícil).
Para Windows, por simplicidade, um arquivo pré-compilado com todas as dependências
(incluindo `adb`) está disponível:
- [README](README.md#windows)
- [`scrcpy-win64-v1.17.zip`][direct-win64]
_(SHA-256: 8b9e57993c707367ed10ebfe0e1ef563c7a29d9af4a355cd8b6a52a317c73eea)_
[direct-win64]: https://github.com/Genymobile/scrcpy/releases/download/v1.17/scrcpy-win64-v1.17.zip
Também está disponível em [Chocolatey]:

View File

@@ -78,7 +78,10 @@ apt install scrcpy
在 Windows 上,简便起见,我们提供包含了所有依赖 (包括 `adb`) 的预编译包。
- [README](README.md#windows)
- [`scrcpy-win64-v1.17.zip`][direct-win64]
_(SHA-256: 8b9e57993c707367ed10ebfe0e1ef563c7a29d9af4a355cd8b6a52a317c73eea)_
[direct-win64]: https://github.com/Genymobile/scrcpy/releases/download/v1.17/scrcpy-win64-v1.17.zip
也可以使用 [Chocolatey]

View File

@@ -80,7 +80,10 @@ apt install scrcpy
為了保持簡單Windows 用戶可以下載一個包含所有必需軟體 (包含 `adb`) 的壓縮包:
- [README](README.md#windows)
- [`scrcpy-win64-v1.15.zip`][direct-win64]
_(SHA-256: dd514bb591e63ef4cd52a53c30f1153a28f59722d64690eb07bd017849edcba2)_
[direct-win64]: https://github.com/Genymobile/scrcpy/releases/download/v1.15/scrcpy-win64-v1.15.zip
[Chocolatey] 上也可以下載:

View File

@@ -21,7 +21,7 @@
#define _ANDROID_INPUT_H
/**
* Meta key / modifier state.
* Meta key / modifer state.
*/
enum android_metastate {
/** No meta keys are pressed. */

View File

@@ -210,7 +210,7 @@ scrcpy_print_usage(const char *arg0) {
" Default is 0 (automatic).\n"
"\n"
" --window-height value\n"
" Set the initial window height.\n"
" Set the initial window width.\n"
" Default is 0 (automatic).\n"
"\n"
"Shortcuts:\n"

View File

@@ -16,7 +16,7 @@ convert_keycode_action(SDL_EventType from, enum android_keyevent_action *to) {
static enum android_metastate
autocomplete_metastate(enum android_metastate metastate) {
// fill dependent flags
// fill dependant flags
if (metastate & (AMETA_SHIFT_LEFT_ON | AMETA_SHIFT_RIGHT_ON)) {
metastate |= AMETA_SHIFT_ON;
}

View File

@@ -16,7 +16,7 @@ size_t
xstrncpy(char *dest, const char *src, size_t n);
// join tokens by sep into dst
// returns the number of chars actually written (max n-1) if no truncation
// returns the number of chars actually written (max n-1) if no trucation
// occurred, or n if truncated
size_t
xstrjoin(char *dst, const char *const tokens[], char sep, size_t n);

View File

@@ -1,21 +0,0 @@
#!/usr/bin/env bash
set -e
BUILDDIR=build-auto
PREBUILT_SERVER_URL=https://github.com/Genymobile/scrcpy/releases/download/v1.17/scrcpy-server-v1.17
PREBUILT_SERVER_SHA256=11b5ad2d1bc9b9730fb7254a78efd71a8ff46b1938ff468e47a21b653a1b6725
echo "[scrcpy] Downloading prebuilt server..."
wget "$PREBUILT_SERVER_URL" -O scrcpy-server
echo "[scrcpy] Verifying prebuilt server..."
echo "$PREBUILT_SERVER_SHA256 scrcpy-server" | sha256sum --check
echo "[scrcpy] Building client..."
rm -rf "$BUILDDIR"
meson "$BUILDDIR" --buildtype release --strip -Db_lto=true \
-Dprebuilt_server=scrcpy-server
cd "$BUILDDIR"
ninja
echo "[scrcpy] Installing (sudo)..."
sudo ninja install