I am trying to read the currently playing track of iTunes using ScriptingBridge.
I found a couple of other threads here but no one seems to be working for me (macOS Mojave and iTunes 12.9.4).
I have created the iTunes.h file using the following command:
sdef /Applications/iTunes.app | sdp -fh --basename "iTunes"
I am creating an instance of the Scripting Bridge as follows:
if let itunes: AnyObject = SBApplication(bundleIdentifier: "com.apple.iTunes")
{
if itunes.isRunning
{
Swift.print("iTunes is running...")
}
Swift.print(itunes.currentTrack?.name)
Swift.print(itunes.currentTrack?.album)
}
The code compiles fine. When I run the code, I get the following output:
iTunes is running...
nil
nil
The currentTrack is nil, but iTunes is playing a song. What am I missing here? I already tried disabling the sandbox, but to no avail. I am using macOS Mojave, Xcode 10.2 and iTunes 12.9.4.
Also, when iTunes is not running, it will be started? Why?
Would there be another way to get the currently playing song of iTunes?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…