使用SDK以编程方式将转换后的视频添加到iTunes

我写了一些与HandbrakeCLI接口的简单代码,将视频转换为iTunes可以处理的格式。一旦完成,我希望它自动添加到iTunes。 从iTunes SDK文档中可以看出,以下VBScript代码应该可以工作:
Option Explicit
Dim oiTunes
Set oiTunes = CreateObject("iTunes.Application")
oiTunes.ConvertFile2("D:DevelopmentVBScriptconverted-video.avi")
Set oiTunes = Nothing
Msgbox "Uploaded!"
但是,在运行时,“Uploaded!”消息出现但iTunes尚未导入(甚至开始导入)任何视频文件。 任何人都可以建议我如何让这个工作?此外,如果有人可以告诉我如何确定它是否已完成导入(因为我想在导入完成后重命名元数据),那么我真的很感激。     
已邀请:
似乎
oiTunes.ConvertFile2
是一个返回'convert'对象的方法。可能它正在将文件转换为异步,因此您可以同时执行其他VBScript代码。但是,您的代码直接杀死oiTunes对象,也会终止转换过程。 您可以使用两个属性来读取转换的状态:
.ProgressValue
.MaxProgressValue
。所以你可以创建一个循环:
Dim oConvert : Set oConvert = oiTunes.ConvertFile2(...)
Do : Loop while oConvert.ProgressValue < oConvert.MaxProgressValue
Set oConvert = Nothing
Set oiTunes = Nothing
MsgBox "Uploaded!"
我现在没有iTunes,所以我无法验证这是否可以解决您的问题,但我希望这会让您朝着正确的方向前进。     
按照AutomatedChaos的有用指针,我提供了以下工作代码示例:
Option Explicit
Dim oiTunes, oTracks, oAdd
Set oiTunes = CreateObject("iTunes.Application")
Set oTracks = oiTunes.LibraryPlaylist
Set oAdd = oTracks.AddFile("D:DevelopmentVBScriptconverted-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分钟的视频。     

要回复问题请先登录注册