1

私は、HandbrakeCLIとインターフェイスして、ビデオをiTunesが処理できる形式に変換する簡単なコードをいくつか作成しました。それが終わったら、iTunesに自動的に追加してほしいです。

iTunes SDKのドキュメントからわかることから、次のVBScriptコードが機能するはずです。

Option Explicit
Dim oiTunes
Set oiTunes = CreateObject("iTunes.Application")
oiTunes.ConvertFile2("D:\Development\VBScript\converted-video.avi")
Set oiTunes = Nothing
Msgbox "Uploaded!"

ただし、実行すると、「アップロードされました!」メッセージは表示されますが、iTunesはビデオファイルをインポートしていません(またはインポートを開始していません)。

誰かが私がこれを機能させる方法を提案できますか?さらに、インポートが完了したかどうかを判断する方法を誰かに教えてもらえれば(インポートが完了したらメタデータの名前を変更したいので)、本当に感謝しています。

4

2 に答える 2

0

AutomatedChaos による便利なポインタに従って、次の作業コード サンプルを提供します。

Option Explicit
Dim oiTunes, oTracks, oAdd
Set oiTunes = CreateObject("iTunes.Application")
Set oTracks = oiTunes.LibraryPlaylist
Set oAdd = oTracks.AddFile("D:\Development\VBScript\converted-video.mp4")
Do : Loop While oAdd.InProgress = True
Set oAdd = Nothing
Set oTracks = Nothing
Set oiTunes = Nothing
Msgbox "Uploaded!"

最初に iTunes UI からビデオ ファイルをインポートできることを確認してください。インポートできない場合、インポートは失敗します。

Do .. Loop44 分間のビデオが (かなり低スペックの) 私のコンピューターに約 2 秒で追加されるため、に何かを入れようとしてもほとんど意味がありません。

于 2011-02-28T23:27:17.043 に答える
0

oiTunes.ConvertFile2「変換」オブジェクトを返すメソッドのようです。おそらくファイルを非同期に変換しているため、その間に他の VBScript コードを実行できます。ただし、コードは oiTunes オブジェクトを直接強制終了し、変換プロセスも強制終了します。
変換のステータスを読み取るために使用できる 2 つのプロパティがあるようです:.ProgressValue.MaxProgressValue. したがって、次のようなループを作成できます。

Dim oConvert : Set oConvert = oiTunes.ConvertFile2(...)
Do : Loop while oConvert.ProgressValue < oConvert.MaxProgressValue
Set oConvert = Nothing
Set oiTunes = Nothing
MsgBox "Uploaded!"

私は現在 iTunes を持っていないので、これで問題が解決するかどうかは確認できませんでしたが、これが正しい方向に進んでいることを願っています。

于 2011-02-28T09:37:45.123 に答える