Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.09.2013, 13:59   #11
LeonidasB
Junior Member
 
Регистрация: 13.07.2013
Сообщений: 9
Вес репутации: 0
LeonidasB is an unknown quantity at this point
По умолчанию

Мой вариант. Управляем кнопкой WPS на маршрутизаторе TP-Link MR3020: нажатие длительностью 3-8 сек - запук воспроизведения, 9-14 сек - остановка, до 1 сек - последовательный перебор радиостанций по плейлисту.
Для этого создаем папку:
/etc/radiotuner
А в ней файлы с правами 755:
playlist.m3u - плейлист радиостанций
radio-load.sh - запуск фоногового воспроизведения потока
radio-start.sh - выбор первой радиостанции из плейлиста, или последующей при изменении параметра
radio-stop.sh - полное прекращение воспроизведения
radio-next-station.sh - прекращение воспроизведения теуещей радиостанции и выбор последующей по плейлисту

radio-start.sh:
Код:
#!/bin/sh
#http://lexxai.blogspot.com 
want=$1
pl=/etc/radiotuner/playlist.m3u
while true; do
 cat "$pl" | \
  while read url; do \
    curr=$url
    if [ $(echo "$url" | grep -E -v "^#") ];  then
      name=$(echo "$before"|awk -F , '/^#EXTINF/ {print ($2)}')
      if [  -z $want ] || [ ! -z $(echo "$name" |grep -oi -e "$want") ] ; then
       echo "play: $name" |logger -t 'online-radio'
       wget -c -q -O - $url 2>/dev/null| madplay -q  -
      fi
    fi
    before=$curr
  done
done
radio-next-station.sh:
Код:
#!/bin/sh
killall wget
radio-stop.sh:
Код:
#!/bin/sh
killall radio-start.sh
killall wget
radio-load.sh:
Код:
#!/bin/sh
/usr/radiotuner/radio-start.sh $1 &
playlist.m3u:
Код:
#EXTM3U
#EXTINF:0,"eradio.com.ua: E-radio"
http://62.149.13.129:8500/eradio_hi
#EXTINF:0,"eradio.com.ua: E-radio rock"
http://etoradio.cc.colocall.com:8500/e-rock_hi
#EXTINF:0,"MFM"
http://urg.adamant.net:8080/online128
#EXTINF:0,"uh-radio"
http://online.uhradio.com.ua:8001/efir
#EXTINF:0,"Radio 24"
http://stream1.lux.fm:9010
#EXTINF:0,"Radio Rocks"
http://online.radioroks.com.ua:8000/RadioROKS
#EXTINF:0,"DJFM"
http://media.brg.ua:8010/;stream.nsv
#EXTINF:0,"PerecFM"
http://radio.stilnoe.fm:8080/radio-stilnoe
#EXTINF:0,"Sharmanka"
http://217.20.164.163:8006/;
Для воспроизведения исспользуется MAD - плеер
Устанавливаем:
#opkg update
#opkg install madplay

Для управления плеером клавишей WPS создаем файл:
/etc/hotplug.d/button/00-button:
Код:
. /etc/functions.sh
do_button () {
        local button
        local action
        local handler
        local min
        local max

        config_get button $1 button
        config_get action $1 action
        config_get handler $1 handler
        config_get min $1 min
        config_get max $1 max

        [ "$ACTION" = "$action" -a "$BUTTON" = "$button" -a -n "$handler" ] && {
                [ -z "$min" -o -z "$max" ] && eval $handler
                [ -n "$min" -a -n "$max" ] && {
                        [ $min -le $SEEN -a $max -ge $SEEN ] && eval $handler
                }
        }
}
config_load system
config_foreach do_button button

Дополняем файл /etc/config/system:
Код:
config button
        option button 'wps'
        option action 'released'
        option handler '/etc/radiotuner/radio-next-station.sh'
        option min '0'
        option max '1'

config button
        option button 'wps'
        option action 'released'
        option handler '/etc/radiotuner/radio-load.sh'
        option min '3'
        option max '8'

config button
        option button 'wps'
        option action 'released'
        option handler '/etc/radiotuner/radio-stop.sh'
        option min '9'
        option max '14'
config button
        option button 'wps'
        option action 'released'
        option handler 'poweroff'
        option min '19'
        option max '50'
последняя секция дает возможность программно выключить маршрутизатор и отсоединить HDD (в воем случае для корректного прекращения работы transmission).

Процесс переключения радиостанций смотрим командой:

#logread -f

Все мной с небольшими правками (не работало на MR3020) взято на http://www.lexxai.pp.ua/2012/08/open...net-radio.html. За что автору большое спасибо!
LeonidasB вне форума   Ответить с цитированием
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 21:06. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика