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

时间:2011-02-27 18:37:18

标签: vbscript itunes-sdk

我写了一些与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尚未导入(甚至开始导入)任何视频文件。

任何人都可以建议我如何让这个工作?此外,如果有人可以告诉我如何确定它是否已完成导入(因为我想在导入完成后重命名元数据),那么我真的很感激。

2 个答案:

答案 0 :(得分:0)

似乎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,所以我无法验证这是否可以解决您的问题,但我希望这会让您朝着正确的方向前进。

答案 1 :(得分: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用户界面导入视频文件,因为如果不能,则会失败。

Do .. Loop中尝试将任何内容放入{{1}},因为在我的(规格相当低的规格)计算机上添加了44分钟的视频,大约需要2秒钟。