16
2013
DAEMON Tools LiteとXAMPPでHTMLからISOを再生させるテスト。
自宅環境変更に伴って、居間のTVにPCを繋ぐことになりまして。
HTMLでメニューつくっておいてポチっとやると、NASにあげてある
ISOをひっぱってきて再生できないかな?と考え、ちょっと試してみました。
【目標】
予め作っておいたメニュー用HTMLファイルをブラウザから閲覧し、
観たいISOファイルのところの「再生」なりのボタンを押下すると、
NASのISOファイルをDAEMON Tools LiteにマウントしてPower DVD等で起動させる。
【前提条件】
説明の便宜上、以下の前提条件を設けます。
尚、DAEMON Tools LiteやXAMPPのインストールや設定等まで
記述すると長くなるため、今回は省いています。
・DAEMON Tools Liteがインストール済みである事。(仮想ドライブはDTで追加してある事)
また、DAEMON Tools Liteをインストールしたディレクトリ(DTLite.exeがあるディレクトリ)に
パスを通して置くこと。(普通にインストールした場合、「C:\Program Files\DAEMON Tools Lite\」)
・DAEMON Tools LiteでマウントされたISOファイルは、常にPower DVD等の決まったプレイヤーで
再生する様、予め設定しておくこと。
・XAMPPがインストール&設定済みである事。
(今回はC:\xamppにインストールしてあるものとして説明します。)
・NASはPC起動時にネットワークドライブとしてマウントする事。
ネットワークドライブとしてマウントするNASのディレクトリは「\\NAS-001\movies」とし、
ユーザは「admin」・パスワードは「9999」とする。
また、リンク先は「Z:」にマウントするものとする。
・HTMLで作るメニューは、ローカルIP:192.168.0.10の端末の
「C:\xampp\htdocs\localmenu\」に作る事とする。
【下ごしらえ】
1.NASの自動ログイン&マウント
パスワード制限してあるNASディレクトリをネットワークドライブとして接続したかったので、
以下のファイルを新規作成し、スタートアップに放り込んでおく。
作成ファイル:NasLogin.bat (※ファイル名は何でも良いです)
@echo off net use z: \\NAS-001\movies 9999 /user:admin
2.apacheの自動起動
LAN上の他端末から閲覧したり、HTMLからISOを再生する際にPHPを使うため、apacheを
起動しておく必要があります。今回は既に環境構築してあったXAMPPを使ったのですが、
XAMPPとapacheをサービスに登録しておけば済むと安易に考えていたところ、
僕の環境ではXAMPP Control Panelからapacheをサービスとして登録して起動すると、
HTML等は見れるのだがPHP部分が正常に動かず。
XAMPP Control Panelをよく見てみたら、apacheのステータスは「起動」になっているものの、
おとなりのボタンが「停止中」に。試しにサービスをアンインストールして手動起動した場合は、
「停止」になる。別にPC起動時に手動でポチって押しても良いのだけど、極力自動化させたかったので、
バッチから起動する方針にしました。(XAMPP及びapacheのサービス登録でうまく動く方は
以下の記述は読み飛ばしてください。)
以下のファイルを作成してXAMPPをインストールしたディレクトリ(C:\xampp等)の直下に
放り込み、ショートカットを作ってスタートアップに入れておく。
作成ファイル:apacheStart.vbs (※ファイル名は何でも良いです)
CreateObject("WScript.Shell").Run "C:\xampp\apache_start.bat",0
【参考サイト】
》人力検索はてな – Windowsのバッチプログラム(.bat)を実行する際、ウィンドウを表示しない方法をお教えください。
【作り方】
「C:\xampp\htdocs\localmenu\」の下に、以下のファイルを作成してください。
(NASから持ってきてDAEMON Toolsをキックするまで少し時間がかかるので、
echoでメッセージを出しています。)
作成ファイル:moviePlay.php
<?php if(isset($_GET['fname'])) { $inFname = mb_convert_encoding($_GET['fname'],"SJIS","auto"); $inFname = str_replace("\\\\", "\\" , $inFname); $command = 'DTLite.exe -mount dt, 0, "' . $inFname . '"'; $execCommand = "cmd.exe /c " . $command; exec("$execCommand"); echo "再生には時間がかかりますので、しばらくお待ちください。"; } ?>
【参考サイト】
》daemon-help.com – Command line parameters
》ISOファイルを一発で再生するバッチ
あとは、メニュー用のHTMLの「再生」のリンクを以下の様に記述します。
Aタグのリンク先をmoviePlay.phpにして、引数fnameに再生したいISOの
パス+ファイル名を指定する感じです。上述の通り、ちょっとまってね
メッセージを出してるので、target=”_blank”を指定してます。
【例】「Z:\anime\宇宙巡洋艦モガミ.ISO」を再生させたい場合の基本例
<a href="./moviePlay.php?fname=Z:\anime\宇宙巡洋艦モガミ.ISO" target="_blank">再生</a>
今回は、Twitter Bootstrapを使って無駄にレスポンシブに
メニューを作ってみたので、iPhoneからでも見栄え良く閲覧できたり。
xamppなんで、軽めのCMS等を選んで運用したら、データ管理が
便利かもしれませんね。
【使い方】
LAN上の他の端末からローカルサイトへアクセスする場合、
apacheの設定をいじってあげる必要があります。
D:\xampp\apache\conf\httpd.confの「Listen 127.0.0.1:80」
という記述を探し、「127.0.0.1」の部分をメニューHTMLを
作った端末のローカルIP(今回の例では192.168.0.10)に
変えてapacheを再起動してください。各端末のブラウザからは、
「https://192.168.0.10/localmenu」でアクセスできます。
【問題点】
目的は「何観ようかな~♪」と気軽にメニューを閲覧して、決めたらその場でポチっと
再生できたら良いな…という事だったので、再生後の早送りや音量調整等の操作は
考えていません。この辺りは、リモコン導入したり手動で運用するしかないですかねぇ。
【今後の課題】
ISOだけでなくaviやmp4なんかもポチって押したらプレイヤーで再生できたら良いですね。
「moviePlay.php」でpathinfo使って拡張子を取得して処理を振り分られそうなのだけど、
ちらっと調べてみたらGOM Playerはコマンドラインに対応してないので、コマンドラインで
動かせるVLCかなと考えてはいるのですが、ちょっとやってみたら動かなかったんだよねぇ;
もっとちゃんと調べないとダメみたい…という訳で、今後の課題。
Similar Posts
- GOM PlayerとXAMPPでHTMLから動画を再生させるテスト。
- PHPでWinアプリを終了させるテスト。
- XOOPS WordPress でサムネイルが生成されない現象。
- iTunesで一部MP3ファイルが認識できない問題。
- [KAIEN-NET] TOPページ化とリアルタイム時計
Related Posts
月 | 火 | 水 | 木 | 金 | 土 | 日 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |