Так как имею данную игрушку (точнее две 37LW550Y и 47LV570Y) и являюсь програмером - решил озаботиться написанием апликации для просмотра Картины.
Сам я програмер виндовский, но все же програмер, так что решил помучать эти извращения.
Тут будем писать что то вроде блога, может поможет другим девелоперам (а может кто-то поможет мне ).
Короче начал я так:
1. Зарегился на сайте LG Developer Loуnge ( http://developer.lgappstv.com/devel/....lge?menu=1202 ) , после чего смог скачать SDK v1.5, который инсталировался у меня на винду 7 х64.
2. Посмотрел описание REST API Картины ( http://forum.kartina.tv/index.php?showtopic=3995 ).
3. Почитал что мы имеем по LG SDK - оказалось 2 варианта: или писать на Flash, или писать Web "site" с javascript. Первый вариант совсем не мое, второй тоже не мое, но думаю смогу разобараться Так что решил писать апплицацию в форме сайта.
4. Почитал инструкции от LG SDK, понял что нужно ставить Eclipse и Tomcat Apache сервер 7.0. Поставил (инструкции по установке которые шли с SDK достаточно подробные), после некоторой возьни с вопросами "почему у меня все не работает" - дошло что нужна именно Hellios версия от Eclipse для ЕЕ Web девелоперов и никакая другая. Короче после этих проблем вроде заработало, по крайней мере их демо побежали в предоставленном с SDK эмуляторе.
Следующим этапом решил заняться таки подключением к Картине - изучив REST API попробовал залогинится и тут же нарвался на первую проблему - XMLHttpRequest не работает с "чужими" домейнами ("мой" localhost, ну а Картинин соответственно картинин). После длительного изучения гугля (ну не Web девелопер я никаким боком) понял что фиг мне там светит и моя единственная опция JASONP.
Осталось только понять что это такое. Порывшись еще в интернете - разобрался, ничего сложного "callback=?" в линк вставить не сложно однако работать с ним не удобно, посему порывшись дальше понял что мне надо фигня под названием jQuery. Правда где ее берут и как "вставляют"... ну гугл мне в помощь...
Через несколько часов копания в сети выяснил что эта такая библиотека javascript-ов которую можно просто найти в сети ( например http://docs.jquery.com/Downloading_j...ownload_jQuery) и вставить в проект, причем никаких dependencies нет - просто .js файл, что радует.
Ладно с JSONP разобрался, пошли подключаться. Создал логин линк , запустил в странице на onload - сработало. Следующий этап - получение списка каналов, вроде не сложно но ... новая проблема: хрена засунешь в jQuery.get кукис от логин сессии. Слегка подергавшись решил слать открытым текстом - пока работает, хотя на будущее это плохое решение.
Получил список каналов , теперь надо бы писать страничку его (список) отображающую. С этим тоже возникла мелкая проблема, наверняка известная web девелоперам, но не мне - ответ на get асинхронный, то есть на onload страницы HTML не сгенерировать. Значит будем отображать результат на новой странице.
Короче засунул результат в cookies и перешел на новую страницу. Там список каналов прочитал и отобразил.
Вроде все хорошо, но возникла новая проблема, на этот раз с эмулятором: в режиме debug все работает, а вот когда тестируешь без дебага то при попытке перейти на новую страницу получил "Network error" на экране эмулятора. После длительного изучения выяснилось что такой эфект дает сохранение слишком большого cookie. Пришлось поменять концепцию. Теперь решил запрашивать список каждый раз , вначале для отрисовки груп, затем когда пользователь выберет групу для отображения ее каналов и т.п. а в кукис сохранять быбраные пользователем групу/канал.
Да, еще один момент, в ответе списка каналов при запросе через JSONP - почему-то отсутствует поле protected для каналов. Написал на форуме Картины ( http://forum.kartina.tv/index.php?s=...st&p=88513 ) , но там похоже у девелоперов очередной запой, так что жду ответа, впрочем пока это не критично.
Ок базовая версия вроде с горем пополам (и уродски выглядя) заработала.
Теперь к главному - проигрыванию канала. Написал код, получил URL и ... недокументированая ошибка "-1" (все документированые - положительные) ...
Попробовал просто проиграть обычный AVI из demo от SDK - тот же результат. То есть проблема не с картиной , а (так как демо работает) с моим кодом, что то я хреново с демо содрал . В дополнение ко всему невозможно проигрывать в дебаге, даже demo - у меня на компе стоит поставленный в хрен знает какие времена debug runtime от DirectX и в результате при попытке проиграть имеем миллион окон с ASSERT где-то в directshow фильтрах. Пока еще не разобрался как его вырубить ибо в отличие от старого XP в 64-х битной 7-е в Control Panel панели управления DirectX , где это можно было отключать - нет.
Короче имеем эти две проблемки.
Разберусь - можно будет выпускать альфа версию
Сам я програмер виндовский, но все же програмер, так что решил помучать эти извращения.
Тут будем писать что то вроде блога, может поможет другим девелоперам (а может кто-то поможет мне ).
Короче начал я так:
1. Зарегился на сайте LG Developer Loуnge ( http://developer.lgappstv.com/devel/....lge?menu=1202 ) , после чего смог скачать SDK v1.5, который инсталировался у меня на винду 7 х64.
2. Посмотрел описание REST API Картины ( http://forum.kartina.tv/index.php?showtopic=3995 ).
3. Почитал что мы имеем по LG SDK - оказалось 2 варианта: или писать на Flash, или писать Web "site" с javascript. Первый вариант совсем не мое, второй тоже не мое, но думаю смогу разобараться Так что решил писать апплицацию в форме сайта.
4. Почитал инструкции от LG SDK, понял что нужно ставить Eclipse и Tomcat Apache сервер 7.0. Поставил (инструкции по установке которые шли с SDK достаточно подробные), после некоторой возьни с вопросами "почему у меня все не работает" - дошло что нужна именно Hellios версия от Eclipse для ЕЕ Web девелоперов и никакая другая. Короче после этих проблем вроде заработало, по крайней мере их демо побежали в предоставленном с SDK эмуляторе.
Следующим этапом решил заняться таки подключением к Картине - изучив REST API попробовал залогинится и тут же нарвался на первую проблему - XMLHttpRequest не работает с "чужими" домейнами ("мой" localhost, ну а Картинин соответственно картинин). После длительного изучения гугля (ну не Web девелопер я никаким боком) понял что фиг мне там светит и моя единственная опция JASONP.
Осталось только понять что это такое. Порывшись еще в интернете - разобрался, ничего сложного "callback=?" в линк вставить не сложно однако работать с ним не удобно, посему порывшись дальше понял что мне надо фигня под названием jQuery. Правда где ее берут и как "вставляют"... ну гугл мне в помощь...
Через несколько часов копания в сети выяснил что эта такая библиотека javascript-ов которую можно просто найти в сети ( например http://docs.jquery.com/Downloading_j...ownload_jQuery) и вставить в проект, причем никаких dependencies нет - просто .js файл, что радует.
Ладно с JSONP разобрался, пошли подключаться. Создал логин линк , запустил в странице на onload - сработало. Следующий этап - получение списка каналов, вроде не сложно но ... новая проблема: хрена засунешь в jQuery.get кукис от логин сессии. Слегка подергавшись решил слать открытым текстом - пока работает, хотя на будущее это плохое решение.
Получил список каналов , теперь надо бы писать страничку его (список) отображающую. С этим тоже возникла мелкая проблема, наверняка известная web девелоперам, но не мне - ответ на get асинхронный, то есть на onload страницы HTML не сгенерировать. Значит будем отображать результат на новой странице.
Короче засунул результат в cookies и перешел на новую страницу. Там список каналов прочитал и отобразил.
Вроде все хорошо, но возникла новая проблема, на этот раз с эмулятором: в режиме debug все работает, а вот когда тестируешь без дебага то при попытке перейти на новую страницу получил "Network error" на экране эмулятора. После длительного изучения выяснилось что такой эфект дает сохранение слишком большого cookie. Пришлось поменять концепцию. Теперь решил запрашивать список каждый раз , вначале для отрисовки груп, затем когда пользователь выберет групу для отображения ее каналов и т.п. а в кукис сохранять быбраные пользователем групу/канал.
Да, еще один момент, в ответе списка каналов при запросе через JSONP - почему-то отсутствует поле protected для каналов. Написал на форуме Картины ( http://forum.kartina.tv/index.php?s=...st&p=88513 ) , но там похоже у девелоперов очередной запой, так что жду ответа, впрочем пока это не критично.
Ок базовая версия вроде с горем пополам (и уродски выглядя) заработала.
Теперь к главному - проигрыванию канала. Написал код, получил URL и ... недокументированая ошибка "-1" (все документированые - положительные) ...
Попробовал просто проиграть обычный AVI из demo от SDK - тот же результат. То есть проблема не с картиной , а (так как демо работает) с моим кодом, что то я хреново с демо содрал . В дополнение ко всему невозможно проигрывать в дебаге, даже demo - у меня на компе стоит поставленный в хрен знает какие времена debug runtime от DirectX и в результате при попытке проиграть имеем миллион окон с ASSERT где-то в directshow фильтрах. Пока еще не разобрался как его вырубить ибо в отличие от старого XP в 64-х битной 7-е в Control Panel панели управления DirectX , где это можно было отключать - нет.
Короче имеем эти две проблемки.
Разберусь - можно будет выпускать альфа версию
Комментарий