2013-10-04 2 views
0

Я пытаюсь открыть файл плейлиста .m3u в iTune, используя applescript. Я могу открыть файл списка воспроизведения iTune с помощью:Скажите iTunes открыть файл плейлиста .m3u

#!/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 

Спасибо.

+0

Я не верю, что iTunes знает о плейлистах m3u ... поэтому я сомневаюсь, что вы можете играть так, как есть. Вы можете использовать плейлист вручную, например. не использовать applescript? Я сомневаюсь в этом. Что вам нужно сделать, это прочитать содержимое плейлиста в виде текста в applescript, а затем преобразовать путь к музыке в плейлист iTunes ... тогда сыграйте это. – regulus6633

+0

Кстати, другие программы могут использовать плейлисты m3u. Я думаю, что VLC может у вас может быть проще использовать это для воспроизведения музыки. – regulus6633

+0

Щелчок по файлу .m3u открывает его в iTunes, который создает на лету «список воспроизведения iTune». Если я смогу сделать это с помощью терминала, независимо от команды, я буду счастлив. – roland

ответ

1

Поскольку вы указываете в комментариях к вашему вопросу, который вы можете открыть список воспроизведения m3u в ITunes и создает плейлисты, а затем мое предложение было бы сделать так. Сначала выпустите команду «open» и после создания плейлиста в iTunes выполните команду «play playlist».

Предполагая, что имя плейлиста, созданного в iTunes, является именем файла файла m3u, тогда это может сработать. Также обратите внимание, что applescript использует спецификаторы файлов, а не пути posix к файлу, поэтому мы конвертируем ваш posix-путь в спецификатор файла с помощью команды «POSIX-файл».

Я не пробовал это, но это мое лучшее предположение о том, что может сработать. Удачи.

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 

EDIT: Ошибка может прийти из когда ITunes преобразует ваш файл m3u в плейлист. Возможно, что-то в файле m3u вызывает ошибку. Я не знаю, что предложить для этого.

Однако ошибка может также возникнуть из команды файла POSIX. Иногда это обидно. Итак, вы можете попытаться решить эту проблему, чтобы принудить эту команду к тексту, а затем создать спецификатор, используя слово «файл» перед строковым путем. Поэтому попробуйте это. Если ошибка связана с командой файла 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 
+0

Отлично! Хотя он работает, я получаю сообщение об ошибке в терминале: «./myscript.sh:252:274: ошибка выполнения: iTunes получила сообщение об ошибке: не может сделать некоторые данные в ожидаемом типе (-1700)». Есть ли у вас какие-либо идеи? – roland

+0

Я рад, что у вас что-то работает. Посмотрите в разделе EDIT внизу моего сообщения о возможном исправлении ошибки. – regulus6633

+0

Это не имеет никакого эффекта: s В любом случае это работает, и я могу найти решение позже после того, как он пропустил некоторые мысли. Благодаря! – roland

0

вы хотите использовать параметр командной строки?

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

Где $1 ваш параметр командной строки (первый)

+0

Нет параметров, только полный путь в скрипте :) – roland

Смежные вопросы