![]() |
|
![]() |
#21 | ||
Senior Member
Регистрация: 12.06.2011
Адрес: Киев
Сообщений: 1,933
|
![]() Цитата:
Цитата:
Единственный момент - нужно организовать какой-то фидбек для юзера о состоянии буферизации. DialogProgress, используемый при буферизации, не подходит - он вешает Коди при попытке вывести его поверх видео. Можно выводить информацию прямо на экран или использовать вариант на базе WindowDialog/WindowDialogXML.
__________________
Координатор русского перевода Kodi: https://www.transifex.com/projects/p/kodi-main/ ------------------------------ Raspberry PI 2 + LibreELEC 8 (Kodi 17) Samsung Galaxy Tab A 10.1 + Kodi 17 for Android ------------------------------ Читаем и пополняем Википедию форума: http://xbmc.ru/wiki ------------------------------ На любые личные сообщения, не связанные с переводом Kodi, не отвечаю. Для обсуждений и советов есть форум. |
||
![]() |
![]() |
![]() |
#22 |
Senior Member
Регистрация: 21.06.2011
Сообщений: 4,751
|
![]()
А вы не думали о воспроизведении с нужного момента
Пользователь перемотал на n% Событие произошло % известен. Делаем СТОП Буферизируем с этого участка. И начаинаем воспроизведение с нужного фрагмента Хотя это совсем криво конечно. Наверняка можно найти более элегантное решение.
__________________
Мой репозиторий: https://github.com/tdw1980/tdw/raw/master/repository.tdw1980-1.0.3.zip ![]() https://yoomoney.ru/bill/pay/AHwFUQEpwUU.230131 |
![]() |
![]() |
![]() |
#23 |
Senior Member
Регистрация: 12.06.2011
Адрес: Киев
Сообщений: 1,933
|
![]()
Откуда известен? Если вы думаете использовать события xbmc.Player, то они работают криво.
__________________
Координатор русского перевода Kodi: https://www.transifex.com/projects/p/kodi-main/ ------------------------------ Raspberry PI 2 + LibreELEC 8 (Kodi 17) Samsung Galaxy Tab A 10.1 + Kodi 17 for Android ------------------------------ Читаем и пополняем Википедию форума: http://xbmc.ru/wiki ------------------------------ На любые личные сообщения, не связанные с переводом Kodi, не отвечаю. Для обсуждений и советов есть форум. |
![]() |
![]() |
![]() |
#24 |
Senior Member
Регистрация: 21.06.2011
Сообщений: 4,751
|
![]()
а в чем криво? я год назад примерно пробовал с эйсом экспериментировал, когда там тоже перемотка не работала. Событие перемотки отлавливалось вроде нормально а вот команду эйсу передать не получалось.
__________________
Мой репозиторий: https://github.com/tdw1980/tdw/raw/master/repository.tdw1980-1.0.3.zip ![]() https://yoomoney.ru/bill/pay/AHwFUQEpwUU.230131 |
![]() |
![]() |
![]() |
#25 |
Senior Member
Регистрация: 12.06.2011
Адрес: Киев
Сообщений: 1,933
|
![]()
События не всегда отлавливаются. Например, onPlaybackSeek срабатывает при длинном прыжке (клавиша вверх), но не срабатывает при коротком (клавиша вправо).
__________________
Координатор русского перевода Kodi: https://www.transifex.com/projects/p/kodi-main/ ------------------------------ Raspberry PI 2 + LibreELEC 8 (Kodi 17) Samsung Galaxy Tab A 10.1 + Kodi 17 for Android ------------------------------ Читаем и пополняем Википедию форума: http://xbmc.ru/wiki ------------------------------ На любые личные сообщения, не связанные с переводом Kodi, не отвечаю. Для обсуждений и советов есть форум. |
![]() |
![]() |
![]() |
#26 | |
Senior Member
Регистрация: 21.06.2011
Сообщений: 4,751
|
![]()
незнал. я когда с этим событием игрался мышкой по прогрессбару нажимал. и почти сразу понял что мне это не поможет, забросил.
А если в цикле запустить getTime(self) и мониторить позицию воспроизведения? Хотя вы уже нашли гораздо лучшее решение Цитата:
__________________
Мой репозиторий: https://github.com/tdw1980/tdw/raw/master/repository.tdw1980-1.0.3.zip ![]() https://yoomoney.ru/bill/pay/AHwFUQEpwUU.230131 Последний раз редактировалось TDW1980; 30.07.2015 в 12:56. |
|
![]() |
![]() |
![]() |
#27 |
Senior Member
Регистрация: 15.03.2012
Сообщений: 1,094
|
![]()
Это он погорячился. Надо было добивать. Либторрент нормально работает с приоритезацией чанков.
__________________
RuTracker: http://xbmc.ru/forum/showthread.php?t=2243 Ruhunt.Pulsar: http://xbmc.ru/forum/showthread.php?t=6759 Last.VK: http://xbmc.ru/forum/showthread.php?t=3709 Lovi.fm: http://xbmc.ru/forum/showthread.php?t=6758 |
![]() |
![]() |
![]() |
#28 | ||
Senior Member
Регистрация: 15.03.2012
Сообщений: 1,094
|
![]() Цитата:
Весь функционал плеера (конкретно - реакция на различные команды) при перемотке тормозил на несколько секунд (иногда больше). То есть чаще всего, XBMC вначале пытался получить свой запрашиваемый буфер, а потом уже среагировать на просьбу поставить паузу. Цитата:
А остальные события (не нужные нам) необходимо было проксировать в нижнее окно (то, которое с контролами плеера). Так вот как раз проксирование у меня и не получилось. А оно нужно, так как там в контролах меню ОГРОМНОЕ. Всякие субтитры, звуковые дороги и т.д. Нельзя же лишаться всего этого... Или засучить рукава и все-таки сделать ручками конвертор всех 100% событий в команды JSON-RPC... Теоретически... оно наверное будет работать... Но за такой объем работы страшно браться ![]() Думаю надо еще помучить думалку ![]()
__________________
RuTracker: http://xbmc.ru/forum/showthread.php?t=2243 Ruhunt.Pulsar: http://xbmc.ru/forum/showthread.php?t=6759 Last.VK: http://xbmc.ru/forum/showthread.php?t=3709 Lovi.fm: http://xbmc.ru/forum/showthread.php?t=6758 |
||
![]() |
![]() |
![]() |
#29 |
Member
Регистрация: 25.01.2013
Сообщений: 85
|
![]()
Может все таки нттр поток отдавать? Xbmctorrent вроде умел неплохо прыгать с места на место
|
![]() |
![]() |
![]() |
#30 | |
Senior Member
Регистрация: 12.06.2011
Адрес: Киев
Сообщений: 1,933
|
![]() Цитата:
![]() Проблема с http в том, что не получив данных в течение некоторого времени, Коди отваливается по таймауту. Если не ошибаюсь, по умолчанию таймаут составляет 10 с. Но я вот что подумал. Каковы критерии этого отваливания? Если полное отсутствие ответа от сервера, тогда проще. У себя в YATP я серверную часть реализовал на базе WSGI - стандартного питоновского протокола для веб-приложений. Особенность этого протокола в том, что WSGI-сервер ожидает на входе любой итерируемый объект, который затем побайтно скармливает клиенту. Короче, можно написать кастомный обработчик файлов с интерфейсом итератора, который будет передавать файл от сервера клиенту (Коди). Если Коди запрашивает отсутствующий кусок, обработчик файлов, в свою очередь, начинает буферизацию, ставя первому куску запрошенного фрагмента максимальный приоритет. При этом обработчик следит за таймаутом и как только таймаут подходит к концу, скармливает Коди небольшую порцию данных, например 1 КБ, чтобы Коди продолжил ожидать завершения буферизации. И так, пока буферизация не закончится, обработчик периодически скармливать маленькие куски данных, поддерживая соединение. А когда буфер нужного размера заполнится, обработчик опять начать выдавать данные на нормальной скорости. Т. е. нам нужен некий обработчик файлов с интерфейсом итератора, умеющий контролируемо выдавать куски файла. Единственное, что меня беспокоит - производительность такого решения. bottle, на базе которого сделана серверная часть YATP, при выдаче файла скармливает WSGI-серверу стандартный питоновский файловый объект (open), написанный на C, а значит очень быстрый. Как бы не пришлось писать этот обработчик файлов на C++ или на худой конец на Cython и компилировать в бинарный модуль.
__________________
Координатор русского перевода Kodi: https://www.transifex.com/projects/p/kodi-main/ ------------------------------ Raspberry PI 2 + LibreELEC 8 (Kodi 17) Samsung Galaxy Tab A 10.1 + Kodi 17 for Android ------------------------------ Читаем и пополняем Википедию форума: http://xbmc.ru/wiki ------------------------------ На любые личные сообщения, не связанные с переводом Kodi, не отвечаю. Для обсуждений и советов есть форум. |
|
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Торрент ТВ для убунту | dimmi777 | Помощь по плагинам | 226 | 11.05.2021 13:25 |
Торрент-ТВ и iPhone/iPad | Alex2013 | Поддержка платформы Mac | 28 | 13.03.2015 17:13 |
торрент | Алексей | Подсказки, описания и FAQ по XBMC | 1 | 14.01.2011 22:43 |