TVTest というソフトがあって、PT3などのチューナーがあればすぐにTVを視聴できる。しかし、TVTest は Windows 専用である。 ということで、Mac で楽に見る方法はないだろうかと探した…けどなかったので作った。
Mac OS用のアプリを作ったのは初めてで、Swift も一切書いたことがなかったので結構たいへんだった。でも楽しかった。
アプリの仕組み
Meruru は起動したら、Mirakurun に接続して、Mirakurun が提供する HTTP API を使って番組切り替えと映像表示をしている。 といっても、普通 Mac にPT3などのチューナーは直接させないので、LAN内に別のマシン(Windows や Linux)を用意してそこで Mirakurun を動かす必要がある。
▼自分はこのような構成でやった
Mirakurun すごい
Mirakurun はTVの番組情報や動画ストリームにアクセス可能なHTTP APIを提供するソフトウェア。
日本のTVの技術は独自のもので、関連ソフトウェアは少ない。 そんな狭いドメインの中で、オープンソースで開発されている Mirakurun は本当にすごい。
本当にすばらしいので寄付しました。
https://github.com/Chinachu/Mirakurun#backers
VLCKit すごい
VLCKit は あの有名な動画プレイヤー VLC Media Player のコア部分を切り出したライブラリ。 Mac 標準の QuickTime Player では m2ts 形式の動画は再生できなかったが、VLC Media Player であれば再生できるので採用した。
だいたいサンプルコードを真似するだけで動いた。書いたコードはほんの少しだった。VLCKitすごい。
VLCKit 初期化で失敗した記録
VLCKitを最初試したとき次のエラーが出て動画が再生されなかった。
2019-04-06 20:11:21.275482+0900 Meruru[23765:2757458] [AudioHAL_Client] HALC_ShellDriverPlugIn.cpp:104:Open: HALC_ShellDriverPlugIn::Open: opening the plug-in failed, Error: 2003329396 (what)
これは、ビルド設定で App Sandbox という機能をOFFにしたら直った。
セキュリティを高める機能なので、安易にOFFにするのは良くないと思うけど、いろいろ例外設定を入れても動かないので仕方なくOFFにした。