Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: MPD автопереключение трека при потере потока.  (Прочитано 1067 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн zettabee

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Доброго времени суток. Задача такая: организовать проигрывание интернет радиостанции.
Из официальных репов установлено Ubuntu server 12.04, MPD (Music Player Daemon) + MPC.
Создал плейлист из ссылки на станцию и локальных МР3 файлов. Затея в том, чтоб при обрыве инета, MPD проигрывал бы следующий трек по списку (локальную МР3-шку). Проиграл парочку, снова на ссылку. Нет инета - следующие 2 песни из списка и т.д. до появления связи.
Проблема в том, что при уже отсутствующем соединении MPD, ругаясь на битую ссылку, переходит на следующий трек (хотя и долго "думает"). Но если обрыв произошел во время звучания станции, то перехода не происходит. И потом, при возобновлении связи воспроизведение не продолжается.
Помогите, люди добрые, мудрым советом. )))

Оффлайн zettabee

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: MPD автопереключение трека при потере потока.
« Ответ #1 : 09 Февраля 2013, 05:21:30 »
Да, не густо с "помощниками". ((
Попытаюсь развить тему. Мож кто подключится.
Как выяснилось, точно также ведет себя и MOC. Небыло инета - переключаемся. Был и пропал - "будем искать".
Мне кажется, что проблему можно решить отследив входящий буфер. Скажем, написать скрипт, следящий за ним. Если буфер пуст в течении 3-5 секунд - next track. Вот только где этот буфер ловить?

Пользователь решил продолжить мысль 09 Февраля 2013, 06:51:16:
О! Именно эту фичу нашёл у mpg123.

--timeout seconds
     Timeout in (integer) seconds before declaring a stream dead  (if<= 0, wait forever).


http://manpages.ubuntu.com/manpages/natty/man1/mpg123.bin.1.html

Не был бы он в остальном таким... простым, проблему можно было бы считать решенной.
Ну, господа маститые убунтоводы, подскажите новичку куда копать.
« Последнее редактирование: 09 Февраля 2013, 06:51:16 от zettabee »

Оффлайн Сперанский

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4055
  • Dictum ac factum
    • Просмотр профиля
Re: MPD автопереключение трека при потере потока.
« Ответ #2 : 09 Февраля 2013, 10:24:36 »
zettabee, однозначно нужен скрипт, который будет следить за ситуацией, только зачем следить за буфером, что как то не понятно как реализовать, если можно просто пинговать яндекс, например, каждый N секунд, что значительно яснее для реализации, если нет связи- переключаемся на др.трек, в фоне продолжаем пинговать, появился пинг- возвращаемся на поток. Алгоритм можно сделать любой, единственное что, могут быть проблемы, если интернет есть, а сам поток сдох )

Оффлайн zettabee

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: MPD автопереключение трека при потере потока.
« Ответ #3 : 09 Февраля 2013, 20:49:42 »
Сперанский спасибо за идею, но оговорка верная. Действительно чаще ситуация, что дохнет поток, а не канал в целом. Подумываю над тем, чтобы покопаться в исходниках того же mpg123,и посмотреть как там это реализовано. Но для меня (эникейщика) это будет весьма трудная задача.

 

Страница сгенерирована за 0.053 секунд. Запросов: 25.