【发布时间】:2013-04-10 02:25:07
【问题描述】:
//Using iTunes Controller
iTunes itc = new iTunes();
itc.playFile(filePath); // Takes type String
似乎是正确的做法。但是,我希望用户能够简单地指定歌曲标题...
我可以使用提示来获取艺术家和专辑以查看要浏览的文件夹,因为这就是 iTunes 存储文件的方式......(例如 C:\Users\username\Music\iTunes\iTunes Media\Artist\专辑\歌曲)
有谁知道我可以直接转到指定歌曲的方法吗?我一直在寻找一段时间。
如果有帮助,这里是我正在使用的 API 的文档http://www.dot-totally.co.uk/software/itunescon/javadoc-0.2/index.html
更新-----------------------------------
所以我起身......
//Using iTunes Controller -- Still doesn't work
iTunes itc = new iTunes();
ITSourceCollection sc = (ITSourceCollection) itc.getSources();
ITSource source = sc.getItemByName(song);
int trackID = source.getTrackID();
// Now what to do with the track id? Look for getTrack by ID, then track.play();
// Found that a TrackCollection can return a Track by ID.
// Need to find out how to get the TrackCollection of the library
我被卡住了.... :(
编辑:
我想我可以根据从 sourcecollection 获得的信息手动创建一个轨道。虽然对构造函数感到困惑......
ITTrack(com.jacob.com.Dispatch d)
????谁能澄清创建 ITTrack 对象的正确语法是什么? 这是它的javadoc,我不明白。
http://www.dot-totally.co.uk/software/itunescon/javadoc-0.2/com/dt/iTunesController/ITTrack.html
更新---------------------------------------
好的。所以我使用了 fetchDispatch() 方法来创建一个 ITTrack 类。 http://www.dot-totally.co.uk/software/itunescon/javadoc-0.2/com/dt/iTunesController/ITObject.html#fetchDispatch()
//Using iTunes Controller -- work in progress
iTunes itc = new iTunes();
ITSourceCollection libsource = (ITSourceCollection) itc.getSources();
ITSource trackToPlay = libsource.getItemByName(song);
ITTrack track = new ITTrack(trackToPlay.fetchDispatch());
track.play();
我现在遇到了一个异常:
Exception in thread "main" java.lang.NoSuchMethodError: com.jacob.com.Dispatch.call(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)Lcom/jacob/com/Variant;
at com.dt.iTunesController.ITSourceCollection.getItemByName(ITSourceCollection.java:49)
at Build.Clapper3.process(-----.java:117)
at Build.Clapper3.main(-----.java:232)
呸呸呸呸!所以我在输入项目“名称”的方法上做错了......但是什么?
我想如果我输入:
System.out.println(libsource.toString());
找到源的名称....但我猜它没有 toString() 方法? 输出是:
com.dt.iTunesController.ITSourceCollection@118278a
【问题讨论】:
-
我会多阅读一些文档并尝试一些事情。首先查看
iTunes#getSelectedTracks。最终,当你深入到ITrack时,它有一个play方法 -
getSelectedTracks 似乎只是返回由鼠标左键单击选择的轨道。我试图设置它的方式是用户输入一个歌曲标题,它被存储在一个字符串中。然后,该字符串用于通过我需要弄清楚的某种方法来指定要播放的歌曲。
-
对不起,我的意思是
getSources -
:) 看看,很好的发现!
-
我不知道这是否有帮助,但在文档
Typically, an ITrack is accessed through an ITTrackCollection. You can retrieve all the tracks defined for a playlist using ITPlaylist.getTracks();中我看到ITSource有getPlaylists()所以也许你可以用它做点什么?但是我对这个 api 一无所知。