・動画は、「C:\video\」の下に、まとめて置いてます
・30~40個くらいです
・1分間程度を再生したら、次に動画に移りたいです
・順番は指定(記述)できると良いですが、ランダムでも構いません
・WindowsXP/Proです
・Dosバッチファイルやvbsなどのスクリプト系が条件です
Dosは詳しくないので、単純に「"C:\Program Files\Windows Media Player\wmplayer.exe" "C:\video\fami001.wmv"」などと、複数行、書いてみました。当然ですが、1つのファイル全ての再生が終了しないと、次のファイルの再生に移りません。
初歩的な質問ですみません。ズバリのご回答のみ、求めています。「こうすれば~~」のような推測的ご回答は不要でございます。たぶん、簡単な記述でOKなのだと思います。
以上、よろしくお願いいたします。
http://www.vector.co.jp/soft/winnt/art/se408339.html
目的を達成するだけならばこちらのフリーウェアから可能ですが
バッチファイルでないと駄目だったでしょうか?
動作確認してみましたがランダム再生と再生時間の指定が可能です。
(ただ再生時間を0~60秒と指定しても若干再生時間にずれが生じるようですが)
なおファイルの種類を指定する時にすべてのファイルを選択しないとデフォルトでwmvが表示されないようです。
wmvは再生可能
下のスクリプトでできます。
ただし、今回2つのファイルしか書いていませんが
読みたいものを1つずつ書いていく必要があります。
工夫すればリストから読み出しもできるはずですが・・・
ファイルは関連しているソフトで動きますが、起動までの
時間も含まれているので実際は1分以上で設定したほうが
よいかもしれません。
名前を連番にするならfor~nextを使えばいけます。
スクリプトの説明
wscript.Sleep 1000
→1000[mSec]なのでこれで1秒待ちます。
60000[mSec]は1分です。
Set ws = CreateObject("Wscript.Shell")
ws.run "ファイル名"
→ファイル名を実行します。
Set ws = CreateObject("Wscript.Shell")
ws.run "c:\video\fami001.wmv"
wscript.Sleep 60000
Set ws = CreateObject("Wscript.Shell")
ws.run "c:\video\fami002.wmv"
wscript.Sleep 60000
次のURLはあまり参考にならないかもしれませんが・・・
ご回答、ありがとうございます。これです!こちらの内容で、完璧にOKでした。大変感謝です。
Unix系のシェルスクリプトはなじみが深いのですが、Dosのバッチファイルは、ほとんど知りません。WSHはその高機能版みたいですね。有用そうですので、これをきっかけに勉強してみます。
本当に、ありがとうございました。
少し作成に時間がかかりますが、Windowsについている「Windows ムービー メーカー」を使って、映像を編集したのを見てみてはいかがですか?
たとえば40個のファイルをすべて読み込んで、順番に時間していで再生するのも可能だったと思います。
http://www.microsoft.com/japan/windowsxp/using/moviemaker/de...
ご回答、ありがとうございます。すみませんが、希望情報とは異なるようです。スクリプト系の解を求めていました。同様のコトは実現できるのかもしれませんが、当方の希望する状況にはマッチしないのです。申し訳ありませんが...
普通にバッチかスクリプトを書くと、SLEEPを使って、動画ファイルを順次WMPに再生させていくことになるのだと思います。
自動再生していくだけならそれでもいいのかもしれませんが、途中で連続再生をやめたいときや、動画をスキップしたいときに不便です。
.ASXファイルで再生時間を指定するのが一番スマートではないかと思います。
<DURATION> タグを使用すれば、再生時間を指定できます。
参考↓
http://www.microsoft.com/japan/windows/windowsmedia/howto/ar...
とりあえず、再生時間を指定した.ASXファイルを作成して、それをWMPに再生させるVBSを書いてみました。
'動画フォルダとWMPのパスの指定 Const MOVIE_FOLDER = "C:\Video" Const WMP_PATH = "C:\Program Files\Windows Media Player\wmplayer.exe" '作成するASXファイルのパスの指定。 Const ASX_PATH = "C:\WINDOWS\TEMP\myASX.asx" '時間の設定(「時間:分:秒」で指定し、ダブルクォーテーションで囲む。) Const PLAYTIME = "00:01:00" Set fso = CreateObject("Scripting.FileSystemObject") Set myASX = fso.CreateTextFile(ASX_PATH, True) Set myMovies = fso.GetFolder(MOVIE_FOLDER).Files myASX.WriteLine "<ASX Version = ""3.0"">" For Each myMovie In myMovies myASX.WriteLine " <Entry><Ref href = """ & myMovie.Path & """ /><Duration value = """ & PLAYTIME & """ /></Entry>" Next myASX.WriteLine "</ASX>" myASX.Close '.ASXファイルを作るだけなら、↓の行は不要。 CreateObject("WScript.Shell").Run """" & WMP_PATH & """ """ & ASX_PATH & """"
ご回答、ありがとうございます。こちらのテも有効そうですね。ぱっと見た感じでは、2番の方の手法の方が、シンプルな印象です。機会がありましたら、試してみます。
回答者 | 回答 | 受取 | ベストアンサー | 回答時間 | |
---|---|---|---|---|---|
1 | babizo | 22回 | 18回 | 0回 | 2006-09-10 17:24:27 |
ご回答、ありがとうございます。試してみますね。希望はバッチファイル系です。そちらのコメントを、お待ちします。