R.Takakura
Portfolio Site

VSCodeのカメラ,動かないよ

vs terminal

OpenCVとかQtとか,便利ものはたくさんある

カメラやマイクといったメディアを用いるためのプログラムは多く存在する. 最近のスマホアプリだったらカメラで顔を写してウサギになったり犬になったりできる. もちろん,そういったアプリはPCにも存在する. 最近だとZoomとか,Microsoft Teamsとかのビデオ会議ツールとかもカメラを使うアプリケーションだ.

では,そういったアプリケーションを実際に作成するときにはどのようなライブラリを使えば良いか. 有名なところでいえば OpenCV とか Qt が挙げられる. これらのライブラリは,カメラへのアクセスを簡潔にしてくれるだけでなく, 取得したイメージに対してエンコード形式等を深く考えることなく,処理を容易にしてくれる. 開発者の開発体験を大いに向上させてくれるだろう.

VSCodeじゃ動かないってよ

ところが,これらのライブラリを使用してカメラやマイクにアクセスするコードを記述すると, エラーコードを出すことなく静かにプロセスを終了させる現象が発生する. それはもうとても綺麗にプロセスを終了させる.

security

この現象はMacOSに固有の問題だ.VSCodeはMicrosoft製なだけあって,Windowsでは正しく動く. 「セキュリティとプライバシー」をチェックしてみると確かにVSCodeはリストにない. このことから,VSCodeはMacOSへメディアのアクセス許可を発行していないことがわかる (まぁ,テキストエディタにメディアの許可なんていらないという話もあるが).

調べてみたところ,この問題に悩んでいる人は多いらしい. 公式のリポジトリにも同様の内容のissueが存在している. issueの会話においていろいろな議論がなされているが, 実はシンプルな解決方法が存在する.

VSCode以外で実行してみてはいかが?

当たり前だが,これが最も簡単な解決方法だ. 幸い,MacOSにはterminal.appという便利なアプリも存在する. 競合アプリケーションも豊富にあり,AtomIntelliJ IDEASublime Textとあげたらキリがない. Pythonのコードを書いているならPyCharmも選択肢の1つだろう. 何ならEmacs,Vimを使って玄人になる選択肢もある.

そう,可能性は無限にある.
何もVSCodeだけに執着する必要はないのだと,VSCode自身が教えてくれた.

Modified: 2020-06-27.
Created by Rei Takakura & All rights reserved.
This website uses Google Analytics to analyze the user behavior.