2009-12-08 83 views

回答

7

試試這個:

--gets file path of selected song 
tell application "iTunes" 
set songLocation to get location of selection 
end tell 
return songLocation 

--gets file path of currently playing song 
tell application "iTunes" 
set songLocation to get location of current track 
end tell 
return songLocation 
+0

的'文件track'類,它從'track'類繼承,加'location'屬性(它從共享庫中的音軌可能不具有,例如),其中包含了路徑文件。所以你可能首先要檢查類型,使用這個:'如果myTrack的類不是文件跟蹤然後...'。順便說一句,如果軌道是「孤立」 - 文件沒有找到 - 的'位置=缺少value',其中,可向定位孤立的文件進行檢查。 – Demis

0

如果通過AppleScript的是不可用的,你最好的選擇將是打開和分析iTunes的plist文件。如果你只需要靜態信息,那你就是金。如果您需要動態信息(例如當前正在播放的曲目上的信息),您需要通過AppleScript獲取曲目的永久ID,然後解析plist文件並查找您需要的任何信息(包括位置,它有完整的路徑)。

爲了解析該XML的plist文件(在〜/音樂/ iTunes的/ iTunes音樂Library.xml),你可以使用Ruby或Python或其他任何你喜歡的語言。如果你喜歡蟒蛇,試試這個庫:

http://docs.python.org/library/plistlib.html

1

如果你打算使用Python,而不是AppleScript的,不想來解析XML的plist文件,你可以通過COM獲取的文件路徑API。

import win32com.client 

iTunes = win32com.client.gencache.EnsureDispatch("iTunes.Application") 
currentTrack = win32com.client.CastTo(iTunes.CurrentTrack,"IITFileOrCDTrack") 

print currentTrack.Location