使用COM接口在iTunes中访问新添加的曲目
我试图使用COM接口和JavaScript将曲目信息添加到iTunes中新添加的曲目。我能够成功添加文件,但无法使用OperationStatus.Tracks()获取它们。我知道OperationStatus.Tracks()在OperationStatus.InProgress()返回false之后才可用。但是,当我尝试调用InProgress()时,我期望成为OperationStatus对象时,会收到错误消息:“对象不支持此属性或方法。”使用COM接口在iTunes中访问新添加的曲目
var iTunesApp = WScript.CreateObject("iTunes.Application");
var status = iTunesApp.LibraryPlaylist.AddFile('newfile.mp4');
WScript.Echo(status.InProgress());
任何人都可以对这里出了什么问题有所了解吗?
我已经能够回答我自己的问题。当不需要参数时,我只是简单地添加空的参数。因此,这些方法和性质未被认可。上面提到的最后一行将在下面的表格工作:WScript.Echo(status.InProgress);
要访问最近添加可以使用var newtracks = status.Tracks;
然后进行访问属性有关个人的轨迹可以完成曲目如下:var newtrack = newtracks.ItemByName('filename');
WScript.Echo(newtrack.Name);
不要忘记AddFile的结果是异步的,所以在访问数据之前您需要循环等待。
var results = iTunesApp.AddFile(filepath);
// wait for the result to be available
while(results.InProgress)
Thread.Yield();
foreach(var it in results.Tracks)
{
tune = it as IITFileOrCDTrack;
Console.WriteLine("Track '{0} - {1}' was added to itunes library", tune.Artist, tune.Name);
}
要获得最新添加的曲目,我想你可以创建一个智能播放列表,通过添加的访问日期和周期排序,这将可能是比访问整个iTunes的DB更快。
对不起没有意识到问题是在JavaScript中...仍然我认为这仍然是一个有效的点 – draeron 2014-01-11 22:27:04
我想知道你是如何设置javascript来访问iTunes的,我有itunes sdk但是它的.h和.c文件(它们是c类型语言的源文件)。我正在尝试使用运行在本地html文件上的JavaScript来从iTunes获取正在播放的信息并将其显示在页面上。 (这是所有在本地计算机上) – 2012-06-27 13:34:31