代码之家  ›  专栏  ›  技术社区  ›  Bill

我能用perl在itunes(mac)上给一首歌打分吗?

  •  1
  • Bill  · 技术社区  · 15 年前

    我试过搜索CPAN。我发现 Mac::iTunes ,但不是为特定曲目指定分级的方法。

    3 回复  |  直到 15 年前
        1
  •  4
  •   iamamac    15 年前

    您可以编写applescript来完全控制itunes,并且有一个perl绑定 Mac::AppleScript .

    编辑 代码示例:

    use Mac::AppleScript qw(RunAppleScript);
    
    RunAppleScript(qq(tell application "iTunes" \n set rating of current track to $r \n end tell));
    
        2
  •  5
  •   Rob Kennedy    15 年前

    如果您对mac::applescript不感兴趣,它只需要一大块applescript文本并运行它,您可能更喜欢 Mac::AppleScript::Glue ,它提供了一个更面向对象的接口。以下是与iamamac的示例代码等效的代码:

    #!/usr/bin/env perl
    use Modern::Perl;
    use Mac::AppleScript::Glue;
    use Data::Dumper;
    
    my $itunes = Mac::AppleScript::Glue::Application->new('iTunes');
    # might crash if iTunes isn't playing anything yet
    my $track = $itunes->current_track;
    # for expository purposes, let's see what we're dealing with
    say Dumper \$itunes, \$track;
    
    say $track->rating; # initially undef
    $track->set(rating => 100);
    say $track->rating; # should print 100
    

    这个模块所做的就是构建一个applescript的大blob,运行它,然后将它分解成另一个applescript表达式,可以在下一个命令中使用。你可以在 _ref 运行上述脚本时跟踪对象的值。因为它所做的只是粘贴和解析applescript,所以这个模块不会比任何其他基于applescript的方法快多少,但是它确实允许您在脚本中散布其他perl命令,而且它让您的代码看起来更像perl,这是值得的。

        3
  •  -2
  •   mopoke    15 年前

    看一看 itunes-perl ,它似乎能够对音轨进行评分。