2014-05-02 8 views
0

Я хочу знать, можно ли получить информацию о текущем воспроизведении (имя файла, время и т. Д.) Для VLC из командной строки.Получить сейчас Воспроизведение информации из командной строки VLC

Я хочу использовать Java для использования этой информации где-то.

Одна возможность может быть использована JNA, но не уверен, как это будет работать.

Я искал всюду, но он только подсказывает, как запустить файл из командной строки.

ответ

3

Видимо, VLC поставляется с небольшим сервером Http, который может использоваться для отправки команд игроку. Вы запускаете сервер, выпуская % vlc -I http (--http-src /directory/ --http-host host:port), где --http-src и --http-host не являются обязательными. Используя только vlc -I http VLC прослушивает на 127.0.0.1:8080 в моей системе.

Вы можете получить статус игрока и отслеживать информацию, направив запрос GET на http://127.0.0.1:8080/requests/status.xml, который возвращает файл XML, который выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<root> 
... 
<time>75</time> 
<volume>512</volume> 
<length>326</length> 
<rate>1</rate> 
... 
<state>playing</state> 
<position>0.23139409720898</position> 
<information> 
    <category name="meta"> 
     <info name="artwork_url">file:///path/to/art/work</info> 
     <info name="genre">Genre</info> 
     <info name="album">Album Name</info> 
     <info name="publisher">Publisher</info> 
     <info name="title">Track Title</info> 
     <info name="track_number">1</info> 
     <info name="filename">File Name</info> 
     <info name="artist">Artist Name</info> 
    </category> 
    <category name="Stream 0"> 
     <info name="Bitrate">128 kb/s</info> 
     <info name="Type">Audio</info> 
     <info name="Channels">Stereo</info> 
     <info name="Sample rate">44100 Hz</info> 
     <info name="Codec">MPEG Audio layer 1/2/3 (mpga)</info> 
    </category> 
</information> 
<stats> 
... 
</stats> 
</root> 

Если информация дорожки заполняется из тегов представить в аудиофайл.

Вы можете даже отправлять команды VLC для управления воспроизведением с помощью этого метода. Вот полный справочник по API Http: VLC Http Requests.

Вы можете взаимодействовать с сервером Http, используя один из Http клиентов, доступных для Java, таких как Apache HttpClient, и вы можете разобрать XML-файл возвращается из ваших запросов, используя нечто вроде JAXP, хотя я уверен, что альтернативы и из них существуют.

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