16
2013
DAEMON Tools LiteとXAMPPでHTMLからISOを再生させるテスト。
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 | ||||

次の記事
前の記事