Доступ к новым добавленным трекам в iTunes с интерфейсом COM - PullRequest
1 голос
/ 10 мая 2011

Я пытаюсь добавить информацию о треках во вновь добавленные треки в iTunes, используя интерфейс COM и JavaScript.Я могу успешно добавлять файлы, но не могу получить их с помощью OperationStatus.Tracks ().Я знаю, что OperationStatus.Tracks () недоступен до тех пор, пока OperationStatus.InProgress () не вернет false.Однако, когда я пытаюсь вызвать InProgress () для того, что, как я ожидаю, будет объектом OperationStatus, я получаю сообщение об ошибке: «Объект не поддерживает это свойство или метод».

var iTunesApp = WScript.CreateObject("iTunes.Application");
var status = iTunesApp.LibraryPlaylist.AddFile('newfile.mp4');
WScript.Echo(status.InProgress());

Может ли кто-нибудь сброситьсвет на то, что здесь происходит не так?

Ответы [ 2 ]

1 голос
/ 11 мая 2011

С тех пор я могу ответить на свой вопрос. Я просто добавлял пустые парены, когда не нужно было никаких параметров. Как таковые, методы и свойства не были признаны. Последняя строка, упомянутая выше, будет работать в следующей форме:
WScript.Echo(status.InProgress);

Доступ к недавно добавленным трекам можно выполнить с помощью
var newtracks = status.Tracks;

Затем получить доступ к свойствам отдельной дорожки можно следующим образом:
var newtrack = newtracks.ItemByName('filename');
WScript.Echo(newtrack.Name);

0 голосов
/ 12 января 2014

Не забывайте, что результат из 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.

...