PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Рабочий журнал (http://pccar.ru/forumdisplay.php?f=25)
-   -   ВАЗ 21093 + SmartQ K7 (android) (http://pccar.ru/showthread.php?t=19285)

ifynk 08.01.2014 17:24

Цитата:

Сообщение от s.m. (Сообщение 282608)
А что делает такого таскер?
Если будет постоянно висящий сервис (а с оболочкой именно так и есть), то нафиг таскер не нужен, все можно замутить в самом сервисе.

Таскер только отслеживает появление/пропадание зарядки. Раньше PowerAmp запускался и останавливался по питанию и все. А сейчас он просто по времени подсветку ставит. Все это я могу и сам реализовать.

ifynk 08.01.2014 17:27

Цитата:

Сообщение от s.m. (Сообщение 282608)
А чем не нравится висящая панелька, как у меня? Много места не занимает, висит себе поверх любой проги, выводить туда можно что угодно.

Ну основное то, что я хочу подучить пограммирование под android. Потом у меня свой протокол обмена данными между приложением и teensy. Да и все это через BT, а не через порт работает. Также мне сам интерфейс и не нужен в основном, проще с пульта управлять часто используемыми операциями. Все остальное android и так предоставляет.

ifynk 08.01.2014 17:30

Цитата:

Сообщение от s.m. (Сообщение 282608)
интересно, сам думал добавить интернет-радио себе в оболочку, руки не дошли пока...
В основном душит жаба платить за интернет, а также сомнения, как добавить нужный поток в удобном виде (и где взять его так, чтобы не спалили через ределю), фиксированную привязку к чужому сервису не хочу (у них семь пятниц на неделе). Много гемора в итоге... С обычным радио намного проще - включил и работает.

Тут мне проще. Я эфирное радио вообще не слушаю. Забил фиксированный список самых любимых станций в приложение и все. Интернет по $0.13 в день не особо по карману бъет.

s.m. 08.01.2014 18:38

Цитата:

Сообщение от ifynk (Сообщение 282612)
Забил фиксированный список самых любимых станций в приложение и все.

вот с этого места поподробнее плз...
как получить ссылку на радиостанцию, чем ее потом играть и т.д.
Там я знаю идет поток потом MP3 или AAC, но как прямую ссылку на поток получить, чтобы сервис вещания не обиделся потом?

ifynk 08.01.2014 18:49

Ну я на сайте di.fm выбрал нужную станцию. Для нее указал нужный мне формат - mp3 и тип плеера winamp. В результате я получил плейлист в котором указаны ссылки на нужный мне канал (например http://pub1.di.fm:80/di_darkdnb). Выбрал любую ссылку и прописал ее в коде. Вот и все. А играю поток стандартным mediaplayer. Если честно, то я не совсем понял суть вашей проблемы.

ifynk 08.01.2014 18:52

Цитата:

Сообщение от s.m. (Сообщение 282628)
Там я знаю идет поток потом MP3 или AAC, но как прямую ссылку на поток получить, чтобы сервис вещания не обиделся потом?

Не понял смысл фразы "чтобы сервис вещания не обиделся потом" :dntknw:

s.m. 08.01.2014 18:58

Цитата:

Сообщение от ifynk (Сообщение 282631)
Не понял смысл фразы "чтобы сервис вещания не обиделся потом" :dntknw:

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

ifynk 08.01.2014 19:01

Цитата:

Сообщение от s.m. (Сообщение 282634)
имелось в виду всякие защиты от использования потока, если они есть.
и еще клево иметь метаинфу, что играет в данный момент.

Все равно не пойму. Откуда возьмется защита? Или вам нужен канал, который только платный, а хочеться просто так?

Метаданные добавлю тоже. Уже пытался их получить, но сразу не завелось. Поищу в инете еще решения, но пока забил на это.

kristal0211 08.01.2014 21:56

ifynk, вот какое-то решение, но не пробовал работу.
http://anton.logvinenko.name/ru/blog...yu-python.html
Код:

#!/usr/bin/env python
import urllib2
stream_url = 'http://pub1.di.fm/di_classictrance'
request = urllib2.Request(stream_url)
try:
    request.add_header('Icy-MetaData', 1)
    response = urllib2.urlopen(request)
    icy_metaint_header = response.headers.get('icy-metaint')
    if icy_metaint_header is not None:
        metaint = int(icy_metaint_header)
        read_buffer = metaint+255
        content = response.read(read_buffer)
        title = content[metaint:].split("'")[1]
        print title
except:
    print 'Error'


s.m. 08.01.2014 23:51

Цитата:

Сообщение от kristal0211 (Сообщение 282658)
ifynk, вот какое-то решение, но не пробовал работу.
http://anton.logvinenko.name/ru/blog...yu-python.html
Код:

#!/usr/bin/env python
import urllib2
stream_url = 'http://pub1.di.fm/di_classictrance'
request = urllib2.Request(stream_url)
try:
    request.add_header('Icy-MetaData', 1)
    response = urllib2.urlopen(request)
    icy_metaint_header = response.headers.get('icy-metaint')
    if icy_metaint_header is not None:
        metaint = int(icy_metaint_header)
        read_buffer = metaint+255
        content = response.read(read_buffer)
        title = content[metaint:].split("'")[1]


        print title
except:
    print 'Error'


Нафига челу питон, если он на жаве пишет. Там тоже ничего сложного - аж 2способа гугл предлагает для сетевых запросов. Но это оффтоп здесь


Часовой пояс GMT +4, время: 21:51.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot