Установил я не давно апплет для радио — Radio Tray. Приятно вписывается в интерфейс, хорошо сделана буферизация(нет заиканий при прослушивании радиостанций), можно не открывая программу(да её и открыть то нельзя, только настройки что бы выбить радиостанции) менять громкость и включать/отключать радио, но вот кириллица отображалась кроказябрами. Ещё пара слов о Radio Tray и решение проблемы с кодировкой под катом.
Установить последнюю версию Radio Tray в ubuntu можно введя следующие 3 команды:
sudo add-apt-repository ppa:eugenesan/ppa
sudo apt-get update
sudo apt-get install radiotray
При наведении мышки на значок программы можно менять громкость(колёсико мышки), а так же вылезает всплывающая подсказка.
Клик мышки позволяет выбирать радиостанции и включать/выключать радио(это, кстати, можно делать с мультимедийных клавиш)
Перевод немного корявенький, но жить можно. В настройках можно вбивать радиостанции или свои собственные плей листы.
При новом треке будет появляться всплывающее уведомление согласно теме настроенной в системе.
Ну а теперь главное.
Кодировка в Radio Tray
Открываем текстовым редактором файл StateMediator.py
sudo gedit /usr/share/pyshared/radiotray/StateMediator.py
Находим в нём строчку def notifySong(self, data): после неё будет строка newMetadata = str(data) за место неё пишем:
newMetadata = str(data).encode('latin-1').decode('cp1251').encode('utf8')
Перезапускам Radio Tray — кодировка в порядке.
Добавлено:
Если горит индикатор сигнала, но звука нет можно попробовать открыть радиостанцию через стандартный плеер(Например totem), скорее всего он напишет, что надо установить дополнительные модули… устанавливаем их и перезапускам radio tray.
Для windows тоже существует множество программ, которые позволяют слушать онлайн радио. Например, radiocent. Эта программа позволяет не только прослушивать радиостанции, которых много изначально, но и с лёгкостью записывать поток прямо с эфира. Приятно, что программа на русском языке и бесплатна.
У меня почему-то не хочет работать =( ubuntu 11.04 с unity.
Т.е вообще в трей не вставляется, я из dash тоже запускал, все равно не работает. Помогите..
Странно, точно выполнили команды
sudo add-apt-repository ppa:eugenesan/ppa
sudo apt-get update
в самом начале?
Можно попробовать добавить программу в белый лист. Кстати, в 11.10 не будет проблем с добавлением программ в белый лист.
И PPA добавил, и кэш обновил. Выполнил команду добавления всего в белый лист gsettings set com.canonical.Unity.Panel systray-whitelist «[‘all’]». Все равно почему-то не работает.
Спасиб за заметку, ворой раз уже по ней на радиотрей кодировку русскую ставлю!
Спасибо
обновил radiotray до 0.7.1 — опять слетела кодировка, а в StateMediator.py этих строк нет. Где порыть?
поправить кодировку отображения можно так:
Проверьте настроена ли у вас русская локаль с кодировкой cp1251:
locale -a | grep ru_RU
В выводе команды должна присутствовать строка:
ru_RU.cp1251
Если нет, то её необходимо добавить:
sudo gedit /var/lib/locales/supported.d/ru
и добавляем строку:
ru_RU.CP1251 CP1251
и перекомпилируем:
sudo locale-gen
Осталось поменять только параметры запуска программы, создаем сами значок на панели или раб.столе и в команде пишем
sh -c "export LC_ALL=ru_RU.CP1251 ; radiotray %U"
в том же файле, в самом низу
def on_song_changed(self, data):
...
if('title' in data.keys()):
self.context.title = data['title']
у титла добавляем енкоде по тому же принципу:
if('title' in data.keys()):
self.context.title = data['title'].encode('latin-1').decode('cp1251').encode('utf8')
только у меня радиотрей лежит в /usr/share/radiotray
и для того что бы в всплывающих было тоже без кракозябр нуна в плагине подправить
/usr/share/radiotray/plugins/NotificationPlugin.py
после обьявления notify вставить декодирование мессаги
def notify(self, title, message):
message = message.encode('latin-1').decode('cp1251').encode('utf8')
Спасибо, получилось. Правда, в имеющемся там плагине Song History остались кракозябры, но это мелочи
Спасибо, локаль установлена, все остальное тоже вроде как понятно. Но это способ, пригодный для любой программы с подобными проблемами и он вовсе не так изящен, как первый. Пока откатился на 0.6.4.
Вообще, RadioTray приглянулся достаточно уверенным отображением метаданных (исполнитель, песня), что, к примеру, в vlc допилено явно не до конца.
Еще раз спасибо!
С Новым годом!
А как добавить новые, например, русские станции? Есть URL-ы у кого нить?
Программа вылетает с ошибкой:
'latin-1' codec can't encode characters in position 1-6: ordinal not in range(256)
XUbuntu 12.04