任意のフォルダの動画をちょっとずつ見る
久しぶりにスクリプトを作ったので、貼ってみる。 任意のフォルダ内の動画を、指定した時間だけ順次WMPで再生していくスクリプト。
Option Explicit
'**************【設定項目】******************
'WMPのパス
Const WMP_PATH = "C:\Program Files\Windows Media Player\wmplayer.exe"
'作成するASXファイルのパス
Const ASX_PATH = "C:\WINDOWS\TEMP\myASX.asx"
'再生時間(「時間:分:秒」で指定し、ダブルクォーテーションで囲む。)
Const PLAYTIME = "00:00:05"
'********************************************
Dim sFolPath '対象フォルダのパス
Dim cMovies '動画フォルダ内の動画ファイル全体を指すFilesコレクション
Dim oMovie '動画ファイルを指すFileオブジェクト
'対象フォルダのパスの取得
With WScript.Arguments
If .Count = 0 then Call Argument_Error
sFolPath = .Item(0)
End With
'.ASXファイルの作成
With CreateObject("Scripting.FileSystemObject")
If .FolderExists(sFolPath) = False Then Call Argument_Error
Set cMovies = .GetFolder(sFolPath).Files
With .CreateTextFile(ASX_PATH, True)
.WriteLine "<ASX Version = ""3.0"">"
For Each oMovie In cMovies
.WriteLine " <Entry><Ref href = """ & oMovie.Path & """ /><Duration value = """ & PLAYTIME & """ /></Entry>"
Next
.WriteLine "</ASX>"
.Close
End With
End With
'.ASXファイルを再生
CreateObject("WScript.Shell").Run """" & WMP_PATH & """ """ & ASX_PATH & """"
'対象フォルダが与えられなかった場合の処理
Sub Argument_Error()
MsgBox "フォルダをドロップして下さい。", vbExclamation, WScript.ScriptName
WScript.Quit
End Sub
これは、「人力検索はてな」のこの質問への回答として作ったVBSに手を加えたもの。 元のVBSでは対象となる動画フォルダを固定したが、Drag&Dropされた任意のフォルダに対応できるようにした。 (ついでに変数宣言とか、ちょこちょこ変えたところがある。)
使い方は↓。
- コードをコピペして、【設定項目】を自分用に書き換えたら、好きな場所に拡張子「.vbs」で保存。
- 再生したいフォルダを保存したファイルにDrag&Dropする。(「送る」メニューやフォルダのコンテクストメニューに加えてもよい。)
残念なのは、このスクリプトがMPCでは使えないこと…。
<Duration>タグを理解できないのか、6.4.9.0では固まってしまう…。
6.4.7.5だとプレイリスト再生はするのだが、<Duration>タグは無視されて、一本丸々再生されてしまう。
orz
また、動画の種類によっては時間指定が効かない場合がある。 手持ちの.rmでは、途中で止まらず、最後まで再生されてしまった。 まぁ、.rmをWMPで再生するのがそもそも正規の視聴法ではないので仕方ないw WMPが標準で対応しているものなら大丈夫(なはず…)。
| 固定リンク


コメント