鉴于专辑或艺术家的名字,我想告诉iTunes播放该艺术家或该专辑的所有歌曲。我怎样才能做到这一点?我知道如何通过过滤带有所有曲目的阵列来播放所有歌曲,但我如何告诉iTunes只播放我想要的歌曲?
我知道我可以使用这段代码来获取我想要播放的所有曲目,但是我不知道如何告诉iTunes让他们玩这些曲目。有什么想法吗?
// Get the app
iTunesApplication* iTunes = [SBApplication applicationWithBundleIdentifier: @"com.apple.iTunes"];
// Get the library
iTunesSource* library;
for (iTunesSource* thisSource in [iTunes sources]) {
if ([thisSource kind] == iTunesESrcLibrary) {
library = thisSource;
break;
}
}
SBElementArray* tracks;
for (iTunesPlaylist* playlist in [library playlists]) {
if ([playlist specialKind] == iTunesESpKMusic) {
tracks = [playlist searchFor: name only: type == 0 ? iTunesESrAAlbums : iTunesESrAArtists];
}
}
// There. Now what? how do I play all the tracks in 'tracks'?
答案 0 :(得分:0)
因此,似乎iTunes没有AppleScript / Scripting Bridge命令来播放特定艺术家/某张专辑中的歌曲。根据{{3}}问题,如果不创建新的播放列表(我不想这样做),就无法告诉iTunes播放自定义曲目列表。简而言之,实际上没有办法解决这个问题......
答案 1 :(得分:0)
你可以播放一首歌。
iTunesTrack *track = [tracks objectAtIndex:0];
[track playOnce:YES];
如果您想播放多首歌曲,则应创建或使用播放列表:
for (iTunesUserPlaylist *thisList in playlists) {
if ([[thisList name] isEqualToString:playlistName]) {
playlist = thisList;
break;
}
}
[track duplicateTo:playlist];
[playlist playOnce:YES];