-1

给定专辑或艺术家的名称,我想告诉 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'?
4

2 回答 2

1

您可以播放一首歌曲。

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];
于 2012-12-03T16:58:19.737 回答
0

因此,iTunes 似乎没有 AppleScript/Scripting Bridge 命令来播放某个艺术家/某个专辑上的歌曲。根据这个问题,如果不创建新的播放列表(我不想这样做),就不可能告诉 iTunes 播放自定义曲目列表。总之,这个问题真的没有办法解决……

于 2012-10-26T14:41:51.200 回答