gooブログはじめました!

写真付きで日記や趣味を書くならgooブログ

Mac+PythonでiPhoneをカメラとして使えるが、屋外では使えない

2024-11-01 18:41:54 | Mac
Mac+PythonでiPhoneをWebカメラとして使えるというのは、前回の記事で報告しましたが、続報としてWi-Fiがないところでは利用できないことがわかりました。
というのはWi-Fiがない屋外で利用しようとして、Bluetoothが使えないかAppleサポートディスクにも相談したのですができないということがわかりました。

というのは、
MacBookからiPhoneをBluetoothで接続するには、インターネット共有しないといけない
MacBookからiPhoneをWebカメラとして連携するにはインターネット共有を外さないといけない

矛盾してしまうので、屋外で使用することはできないということになります。

ただ、USBでMacBookとiPhoneを接続すればWebカメラとして使えるので、屋外でも利用可能ではあります。
離れて操作することはできないのが難点ですが。。。。

参考まで

Mac+PythonでiPhoneをカメラとして使う

2024-10-31 20:47:26 | Mac
MacのPytthonでカメラを使う機会があったのですが、Mac内臓のカメラでは使い勝手が悪いのでiPhoneをカメラ代わりにに使ってみることにしました。
Appleサポートを見ると使えそうです。

https://support.apple.com/ja-jp/guide/mac-help/mchl77879b8a/15.0/mac/15.0

pythonで使う場合のことは書かれていないのですが、このマニュアルに従ってFaceTimeを動かし、それと並行して自作のpythonプログラムを動かせばいいだけです。(jupyterlabではカメラそのものが動きません)
インターネット上を見るとVideoCaptureのdeviceIDは0で良いような記載が見受けられるのですが、私の場合は1で動作しました。

Mac側はFaceTimeを起動するだけですが、iPhone側は上記のマニュアルに従い、

「設定」 >「一般」>「AirPlayとHandoff」と選択してから、「連係カメラ」をオンにする。

これだけですが、詳細は上記マニュアルを参照してください。

!!! 追記 一度Pythonでカメラを認識すると、次回からはFaceTimeを起動しなくても、pythonだけでカメラを使えるようです



Jupyterlabでinputを使ってもセルを移動しない

2024-10-30 19:10:12 | Mac
Jupyterlabのセルでinput文を使ってシフト改行をすると、inputそのものは動作するのですが、次のセルに移りません。
ちょっと面倒くさいですが、手動で次のセルを選択するしかないようです。
Macだけでしか試していませんが。

Mac Jupyterlabでカメラが使えない。

2024-10-30 18:55:16 | Mac
MacのJupyterlabでカメラを使おうとしたのですが使えません。Macのプライバシーとセキュリティで許可されていないからのようです。
jupyterlabはSafari上で動作しているので、Safariを許可する(Local hostを)ことも試したのですが、でだめでした。
仕方ないので、jupyterlabのコードをpython形式に変換し、ターミナル上でプログラムを実行することでことなきを得ました。

変換はターミナル上で jupyter nbconvert --to python xxxxx.ipynb で行えます。

ターミナルの許可設定は、アップルマーク → システム設定 → プライバシーとセキュリティ の順でターミナルを許可します。

Macでビープ音を鳴らすpythonルーチン

2024-10-30 18:54:34 | Mac
Pythonでプログラムを組んでいるとあるタイミングでビープ音を鳴らしたいケースがあリます。
いろんなやり方があるようですが、できるだけ余計なライブラリをインストールしたくないということで、標準のosライブラリを使うことにしました。

import os

def macBeep(duration):
snd = 'afplay /System/Library/Sounds/Glass.aiff --time dur'
snd = snd.replace('--time dur', '--time ' + str(duration))
os.system(snd)

macBeep(0.1)

これでMacのSystem/Library/Soundsディレクトリにあるサウンドを鳴らすことができます
このディレクトリにはGlass.aiffの他にもサウンドファイルがありますのでお好きなのを選択してください。
パラメータのdurationはサウンドを流す時間(秒)です。何も設定しないと一秒以上鳴り終わるまで待たないといけないので、短い値を設定した方がいいです。

snd = 'afplay /System/Library/Sounds/Tink.aiff --help' を使用するとafplay のヘルプメッセージが表示されます

以下のようなサウンドがあります
snd = 'afplay /System/Library/Sounds/Blow.aiff --time dur'
snd = 'afplay /System/Library/Sounds/Tink.aiff --time dur'