2016-08-10 3 views
0

Я новичок в использовании программирования vlc, я использую python специально python-vlc для воспроизведения интернет-радиостанции.Событие изменения видеозаписей VideoLan для радиопотока

У меня он играет на станции, но не может получить текущий трек, который играет. Когда я получаю информацию о звуковой дорожке, он все время возвращает трек 1.

В любом случае, я ищу способ получить событие смены песни. Кажется, что это возможно. Поскольку в строке заголовка vlc отображается текущая воспроизводящаяся песня, а в окнах появляется уведомление о новой исполняемой песне.

Я бы предпочел получить событие с песней, чтобы у меня не было опроса, чтобы проверить, изменилось ли имя.

Любая помощь будет оценена по достоинству.

ответ

2

В потоке MPEG нет такой вещи, как «песни». Это всего лишь аудиопоток. Некоторые радиостанции меняют метаданные между ними, поэтому вы можете проверить, изменилось ли название потока или что-то еще. Но это чисто эвристическое.

Я думаю, что уведомление, которое вы видите, также вызвано изменением метаданных.

+0

Спасибо! вы помогли мне взглянуть в правильном направлении. Нужно получить средства массовой информации, проанализировать его, а затем получить метаданные now_playing. Еще одна вещь - попытаться выяснить, есть ли событие, которое срабатывает при обновлении метаданных. – user1086377

+0

На настольных компьютерах Linux, имеющих DBus, событие MPRIS транслируется по шине. Может быть, это помогает? Я не знаю, что вы делаете, но, возможно, MPRIS - это способ пойти в любом случае, вместо того, чтобы напрямую подключаться к VLC;)? –

+1

метаданные меняются, но обработчик события vlc не срабатывает, когда он изменяется, поэтому его либо ошибка, либо что-то не хватает. Решение заключалось в том, чтобы использовать событие, которое выполняется во время воспроизведения изменений, когда я проверяю, изменилось ли название. – user1086377

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