有線の画面共有/ミラーリングで、iPhoneを「横画面・高画質調整・UIなし」のWebカメラ/書画カメラとして使うための支援アプリ
本アプリは、PCのインカメラによる通常のオンライン会議(TeamsやGoogle Meet等)ではなく、以下のような**「Zoomで手元の資料、ノート、またはデバイスの画面を相手に見せながら解説したい」「アングルを自由に固定したサブカメラ(手元カメラ・書画カメラ)としてiPhoneを使いたい」**という場面で最大の効果を発揮します。 持ち歩くWebカメラなどのガジェット類を減らし、iPhone一台でこれを実現できます。
通常、iPhoneを画面共有用の外付けカメラとして使用する場合、以下の課題に直面します。
- 画面の回転・アスペクト比の問題:標準のカメラアプリを起動してiPhoneを横向きにしても、画面共有では縦長のアスペクト比のまま固定されてしまい、横全画面になりません。
- 不要なUIの映り込み:シャッターボタンやグリッド線などのカメラUIがそのまま配信画面に映り込んでしまいます。
- 自動スリープ:操作していないとiPhoneが自動的にスリープしてしまいます。
- 連携カメラの不便さ:Apple公式の「連携カメラ(Continuity Camera)」を使うと、iPhoneの画面が真っ黒になり、手元で画角やズームを確認しながら微調整することができません。
- 配信レートと発熱の負荷:高すぎる解像度で配信すると、Macのデコード負荷や通信帯域を圧迫し、iPhone自体も熱くなります。
Wide Cast Sync は、アスペクト比を横画面(16:9)にロックし、スリープを防止した状態で、カメラプレビューのみを全画面表示するシンプルなアプリです。iPhone側の画面でプレビューを確認しながら、接続先へ綺麗な映像を送ることができます。
- 対応ツール: Zoomの画面共有機能「iPhone/iPad (ケーブル接続)」に最適化されています。TeamsやGoogle Meetなどでは接続の仕組みが異なるため適さない場合があります(通常の会議ではPCのインカメラで十分なため、本アプリは手元等を映すZoomでの画面共有用途に特化しています)。
- マイクと音声: 音声はiPhoneからではなく、**PC側のマイク(またはPCに接続した外部マイク)**から入力してください。
- 遅延と動き: 静止画や動きの少ない映像(手元での作業、手書きメモ、製品の静止デモなど)に適しています。激しい動きのある動画の配信には向いていません。
- 強制横画面ロック (Landscape Lock):アプリ起動時から完全に横向きに画面を固定。
- クリーンビュー (UI非表示):画面をダブルタップすることで、操作ボタンを完全に非表示にできます(再表示はシングルタップ)。
- スリープ防止 (Keep Awake):ミラーリング中に画面が自動でスリープするのを防止。
- 画質(解像度)のトグル切替:配信負荷を抑えるために、解像度を
FHD (1080p)➔HD (720p)➔SD (480p)にトグルで切り替え可能。 - ズーム倍率の切り替え:ボタンタップで
1x➔1.5x➔2x➔3xに瞬時に切り替え可能。
- iPhoneとMacをUSBケーブルで接続します。
- Zoom、Teamsなどの会議ツール、またはOBS StudioをMac側で起動します。
- 会議ツールの画面共有機能から「iPhone/iPad (ケーブル接続)」を選択し、画面共有を開始します。 (初回接続時はiPhone側で「このコンピュータを信頼する」を許可してください)
(※ または、Macで「QuickTime Player」を起動 ➔「新規ムービー収録」➔ 録画ボタン横の矢印からカメラ入力を「iPhone」にしてウィンドウ表示し、そのウィンドウをZoomやTeamsで画面共有、またはOBSでウィンドウキャプチャする方法が最も安定しています。)
- iPhoneに App Store から 「Expo Go」 アプリをインストールします。
- Macのターミナルで本プロジェクトのディレクトリを開き、サーバーを起動します。
- 通常のWi-Fi環境の場合:
npm start
- iPhoneのテザリング(インターネット共有)環境の場合:
Mac側の本当のIPアドレス(
ipconfig getifaddr en0などで確認できるIP)を明示指定して起動します。REACT_NATIVE_PACKAGER_HOSTNAME=<MacのIP> npm start
- ローカル疎通が難しい場合のトンネルモード:
npm start -- --tunnel
- 通常のWi-Fi環境の場合:
- ターミナルに表示されるQRコードを、iPhoneの標準カメラでスキャンしてExpo Goで開きます。
- 画面をダブルタップしてUIを隠し、配信を開始します。
Instead of replacing your PC's built-in webcam for standard video calls (e.g., Teams or Google Meet), this app is designed for "sharing hand-written notes, documents, physical devices, or manual work via Zoom's wired sharing option, using your iPhone as a highly adjustable document camera or hand-cam." This eliminates the need to carry external webcams or dedicated document cameras when traveling or working remotely.
When using an iPhone as an external/sub-camera via wired screen sharing, you face these common issues:
- Orientation & Aspect Ratio Lock: Standard Camera apps don't fill the shared screen horizontally, leaving huge black bars on the sides.
- UI Clutter: Camera controls like the shutter button mirror to the audience.
- Auto-Sleep: The screen turns off after a few minutes of inactivity.
- Continuity Camera Limitations: While Apple's official Continuity Camera lets you use your iPhone as a webcam, it locks and blanks the iPhone screen, making it impossible to preview and adjust the camera angle directly on the phone.
- High Resolution Burden: High-resolution video feeds can cause Mac CPU overload, network lagging, and make the iPhone run very hot.
Wide Cast Sync locks the orientation to landscape (16:9), hides all UI controls, prevents the screen from sleeping, and lets you view the preview on your iPhone screen while sending a clean feed to your Mac.
- Supported Software: Specifically optimized for Zoom's "iPhone/iPad via Cable" screen sharing feature. It is not recommended or suited for standard Teams/Google Meet webcam replacement (where your PC's built-in webcam is usually sufficient).
- Audio/Microphone: Please use your PC's built-in microphone or an external microphone connected to your PC for audio. Audio is not routed from the iPhone.
- Latency & Movement: Ideal for relatively static views (writing notes, showcasing physical products, or desk work). It is not designed for high-motion video feeds.
- Landscape Lock: Forces the app to load and stay in landscape mode.
- Clean View (Hide UI): Double-tap the screen to hide all control buttons (single-tap to restore).
- Keep Awake: Disables auto-lock/sleep while using the app.
- Video Quality Toggle: Switch resolution to prevent lag and heat:
FHD (1080p)➔HD (720p)➔SD (480p). - Zoom Toggle: Instantly switch zoom levels:
1x➔1.5x➔2x➔3x.
- Connect your iPhone to your Mac using a USB cable.
- Start your meeting software (Zoom, Teams, etc.) or OBS Studio on Mac.
- Share your screen and select "iPhone/iPad via Cable". (Trust the computer on your iPhone if prompted)
(Alternative: Open QuickTime Player on Mac ➔ Select "New Movie Recording" ➔ Set camera source to "iPhone". Share the QuickTime window via Zoom/Teams or capture it in OBS. This is often the most stable method.)
- Install "Expo Go" from the App Store on your iPhone.
- Open terminal on your Mac and start the server:
- Standard Wi-Fi environment:
npm start
- iPhone Personal Hotspot environment:
Start with your Mac's current local IP (check via
ipconfig getifaddr en0):REACT_NATIVE_PACKAGER_HOSTNAME=<Mac-IP> npm start
- Tunnel mode (for strict firewalls):
npm start -- --tunnel
- Standard Wi-Fi environment:
- Scan the QR code with your iPhone's camera to open it inside Expo Go.
- Double-tap the screen to hide the UI and start sharing.
This project is licensed under the MIT License - see the LICENSE file for details.
