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

这似乎oiTunes.ConvertFile2是一种返回“转换”对象的方法。可能它正在将文件异步转换,因此您可以同时执行其他 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,所以我无法验证这是否能解决你的问题,但我希望这能推动你朝着正确的方向前进。

于 2011-02-28T09:37:45.123 回答
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 分钟的视频添加到我的(相当低的规格)计算机上。

于 2011-02-28T23:27:17.043 回答