2011-02-27 4 views
1

HandbrakeCLIとインターフェイスをとって、iTunesが処理できる形式にビデオを変換する簡単なコードを書いた。それが終わったら、自動的にiTunesに追加してほしい。SDKを使用してプログラムでiPodに変換されたビデオを追加する

はず仕事私は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はビデオファイルをインポートしていない(または読み込みを開始していません)。

どのように私はこれを得ることができます提案することができますか?さらに、もし誰かが私がどのようにしてインポートを終えたかどうかを知ることができたら(インポートが終わったらメタデータの名前を変更したいので)、本当に感謝しています。

答えて

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 .. Loopに何か入れようとすると、約2秒で私の(適度に低い仕様の)コンピュータに44分のビデオが追加されます。

0

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

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

を私は今、iTunesを持っていないので、これはあなたの問題を解決するかどうかは確認できませんでしたが、私はこれがあなたに右方向にプッシュを与えている願っています。

+0

ポインタありがとうございます。私のコードには2つの大きな問題がありました。拡張機能はmp4でなくてはならず、AddFileメソッドが動作するようにファイルを変換する必要はありませんでした。 – Richard

関連する問題