воскресенье, 22 сентября 2013 г.

XBMC. Использование централизованной БД.

XBMC умеет не только проигрывать фильмы, но и организовывать удобный доступ к ним, используя всевозможную дополнительную информацию, добытую им же из интернета. Однако, эту дополнительную информацию мало добыть, ее надо где-то хранить, чтобы постоянно использовать. И XBMC, естественно, может это делать.

Если не мудрить с настройками, XBMC поступит очень просто: он сложит добытую информацию рядом с медиа контентом, тут же, например, в файловой системе. Если сможет, конечно. Наверное, если заглянуть в такую папку, возникнет ощущение некоторого беспорядка. У меня возникает. Кроме того, тот факт, что я скопировал один файл, а теперь их тут уже вон сколько, меня тоже не радует. Опять же, проблемы с сортировкой по дате: хочешь посмотреть последние загруженные файлы с фильмами, а видишь только что выкачанные файлы со всевозможной графикой по фильму недельной давности. Конечно, XBMC не особо заботится о наведении порядка в каталоге с медиа контентом, ведь предполагается, что пользователю просто незачем заглядывать туда. Скинул туда новый фильм - пожалуйста, вот тебе удобный доступ к нему из самого XBMC. И, наверное, это правильно - лишние усложнения ни к чему. Но речь сейчас не об этом.

Помимо разнообразной информации по самому медиа контенту, XBMC умеет ещё и сохранять состояние этого самого контента. Например, удалось утром посмотреть только сорок минут фильма - все, пора на работу. XBMC заботливо сохранит этот факт, и, когда появится возможность досмотреть фильм (вечерком, после работы), вам будет предложен выбор: хотите, смотрите фильм с самого начала, а нет, тогда с того места, на котором остановились. Ничего сверхъестественного, конечно, но ведь удобно.

Однако, как обычно, дьявол кроется в деталях. Начали мы смотреть фильм на кухне за завтраком, а продолжить хочется на диванчике, в гостиной, перед сном. То есть, имеем дело с двумя экземплярами XBMC. Вот тут нас будет ждать разочарование: каждый экземпляр хранит свое собственное видение состояния фильма. Опять же, досмотрели мы фильм вечером, а утром, на кухне, он не отмечен, как завершенный, хотя в гостиной - все в порядке. Засада, однако.

Но XBMC имеет свой ответ на такие хотелки своих привередливых пользователей. И ответ этот заключается в использовании централизованной базы данных. XBMC предлагает воспользоваться услугами MySQL. Надо скачать и установить версию этой свободно распространяемой СУБД, создать пользователя БД, который будет являться владельцем специальных объектов БД, в которых, в свою очередь, будет хранится вся информация по контенту, нужная XBMC. Создание пользователя описано в документации, соответствующие команды надо просто запустить в программе, предназначенной для работы с  БД MySQL (тоже скачивается свободно из интернета). Специальные объекты же в самой БД создаются XBMC автоматически (речь про последнюю официальную стабильную версию Frodo или 12).

Далее, надо параметры соединения с БД записать в специальный файл настроек с именем advancedsettings.xml. Если у вас нет такого файла, не беда, его очень легко создать по шаблону, который доступен на сайте с документацией по XBMC. Файл этот должен лежать в каталоге данных XBMC. Расположение этого каталога в файловой системе сильно зависит от той операционной системы, под управлением которой работает устройство с установленным XBMC. Например, для моего планшета с Windows 8 это:

c:\Users\Имя_Пользователя_ОС\AppData\Roaming\XBMC\userdata

А для планшета с Android 4.1.2 это:

/storage/sdcard0/Android/data/org.xbmc.xbmc/files/.xbmc/userdata

После этих манипуляций, все экземпляры XBMC, у которых в каталоге данных есть этот файл настроек с прописанным в нем доступом к нужной централизованной БД, будут разделять всю доступную информацию по контенту между собой. И, начав смотреть фильм на кухне, можно будет продолжить его просмотр в гостиной с нужного места безо всяких сложностей. Кроме того, вся графическая и другая информация, загруженная из интернета, будет храниться именно в БД, а не в файловой системе.

Однако, сами файлы медиа контента не хранятся в БД. Они по-прежнему размещаются где-то в файловой системе и в каждом экземпляре XBMC должен быть настроен источник данных. Причем, насколько я понял из документации, все протоколы и пути доступа должны совпадать во всех источниках всех экземпляров XBMC, которые будут разделять общую БД. Даже если XBMC установлен на том же устройстве, на котором размещен разделяемый контент, все равно надо указывать сетевые пути, нельзя использовать локальные пути. Наверное, протокол доступа и путь используются в качестве ключей в БД. Я, по крайней мере, создал абсолютно идентичные источники на всех своих установленных экземплярах XBMC, и у меня все работает.

Собственно, весь процесс создания централизованной БД и настройки экземпляров XBMC достаточно подробно и хорошо описан в документации. Так что, используйте эту замечательную возможность на здоровье.

Комментариев нет:

Отправить комментарий