Видимо, 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, хотя я уверен, что альтернативы и из них существуют.