使用 Javascript for Automation (Yosemite),我想更新 iTunes 视频文件的描述。问题:描述恢复为旧值(例如评级正确保存)。
我使用的代码:
var track = Application("iTunes").selection()[0]; // get first track from selection
console.log("--- original values ---");
console.log(track.rating()); // shows original value (66)
console.log(track.description()); // shows original value ("old value")
console.log("--- set new values ---");
track.rating = 75;
track.description = "new value";
console.log("--- new values ---");
console.log(track.rating()); // shows correct value (75)
console.log(track.description()); // shows correct value ("new value")
console.log("--- refresh track ---");
track.refresh(); // has the same effect as doing Cmd-I in iTunes
console.log("--- new values after refresh ---");
console.log(track.rating()); // shows correct value (75)
console.log(track.description()); // shows original value ("old value") <=== incorrect
写入新值后一切正常,但刷新后描述恢复为旧值。例如,评级被正确保存。
如果我不使用 refresh(),并查看 iTunes 中的值,情况看起来不错(描述显示“新值”),但只要我为该曲目执行 Cmd-I 就会恢复为旧值. 这就是为什么我使用 refresh() 来确保我看到实际的最新值。
有什么建议么?