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

告诉iTunes打开一个.m3u播放列表文件

  •  0
  • roland  · 技术社区  · 11 年前

    我正在尝试使用appescription在iTune中打开一个.m3u播放列表文件。我可以使用以下方法打开iTune播放列表文件:

    #!/usr/bin/osascript
    tell application "iTunes"
        play playlist "my playlist"
    end tell
    

    如何传递指向任何位置的.m3u文件的完整路径?类似于:

    #!/usr/bin/osascript
    tell application "iTunes"
        play playlist "/path/to/folder/file.m3u"
    end tell
    

    谢谢

    2 回复  |  直到 11 年前
        1
  •  1
  •   regulus6633    11 年前

    既然你在问题评论中指出,你可以在iTunes中打开一个m3u播放列表,它会创建一个iTunes播放列表,那么我的建议是这样做。首先发出“打开”命令,在iTunes中创建播放列表后,再发出“播放播放列表”命令。

    假设iTunes中创建的播放列表的名称是m3u文件的文件名,那么这可能会起作用。还要注意的是,appescript使用的是文件说明符,而不是文件的posix路径,因此我们使用“posix file”命令将您的positix路径转换为文件说明符。

    我还没有尝试过,但这是我对什么可能有效的最佳猜测。祝你好运

    set posixPath to "/path/to/folder/fileName.m3u"
    set fileSpecifier to POSIX file posixPath
    tell application "iTunes"
        open fileSpecifier
        delay 1 -- delay however many seconds needed to allow the playlist to be created
        play playlist "fileName"
    end tell
    

    编辑 :当iTunes将您的m3u文件转换为iTunes播放列表时,可能会出现此错误。m3u文件中可能存在导致错误的内容。我不知道该怎么建议。

    但是,错误也可能来自POSIX文件命令。这有时很敏感。因此,您可以尝试解决这种可能性的一件事是将该命令强制为文本,然后在字符串路径之前使用单词“file”创建说明符。所以试试这个。如果错误来自POSIX文件命令,那么这应该可以修复它。

    set posixPath to "/path/to/folder/fileName.m3u"
    set fileSpecifier to (POSIX file posixPath) as text
    tell application "iTunes"
        open file fileSpecifier
        delay 1 -- delay however many seconds needed to allow the playlist to be created
        play playlist "fileName"
    end tell
    
        2
  •  0
  •   CS Pei    11 年前

    要使用命令行参数吗?

    #!/usr/bin/osascript
    tell application "iTunes"
        play playlist "$1/file.m3u"
    end tell
    

    哪里 $1 是您的命令行参数(第一个)