Путь к базе данных Xbmc - PullRequest
       28

Путь к базе данных Xbmc

0 голосов
/ 21 марта 2012

Я работаю с XBMC.Я установил XBMC в моей системе (Windows 7, 32 бит).Xbmc работает нормально в моей системе.Я разработал приложение для удаленного управления Xbmc с Ipad.Чтобы получить музыкальные или видео файлы из Xbmc, я не могу.Просматривая форумы xbmc, я обнаружил, что мы можем написать SQL-запрос, чтобы получить их.Но дело в том, что я не могу разобрать, где находится база данных в моей системе.Кто-нибудь, помогите мне найти его.

С уважением, Сушма.

1 Ответ

3 голосов
/ 08 сентября 2012

Сама база данных

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

Настройки, которые могут повлиять на это, находятся в advancedsettings.xml .

Но в общем случае разработчики XBMC советуют:никогда не обращайтесь к базе данных напрямую .

JSONRPC

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

Поддержка JSONRPC была впервые добавлена ​​в XBMC в «Darhma» (v10), стала действительно полезной в «Eden»."(v11) и будет поддерживать почти все возможное в" Frodo "(v12).Информацию об использовании JSONRPC можно найти в вики .

Пример

В этом примере я предполагаю, что вы нацелены на "Eden", текущийстабильный выпуск XBMC.Также я отформатировал следующее с новыми строками, они не обязательны и не присутствуют в ответе от XBMC.

Request

Если бы вы использовали JSONRPC, запрос, который вам нужно было бы отправитьбудет выглядеть примерно так:

{
  "jsonrpc": "2.0",
  "method": "VideoLibrary.GetMovies",
  "params": {
    "properties": [
      "title",
      "year",
      "file"
    ],
    "limits": {
      "start": 0,
      "end": 2
    }
  },
  "id": 1
}

Примечание. Если вам нужна разная информация о каждом фильме, вы можете использовать другие свойства , перечисленные здесь . * Примечание.чтобы пропустить часть «лимиты», чтобы получить все фильмы. *

Ответ

Ответ на это будет примерно таким:

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "limits": {
      "end": 2,
      "start": 0,
      "total": 47
    },
    "movies": [
      {
        "label": "Label for movie",
        "movieid": 1,
        "title": "Title of movie",
        "year": 2012
      },
      {
        "label": "Label for another movie",
        "movieid": 2,
        "title": "Title of another movie",
        "year": 2010
      },
      {
        "label": "Label for a third movie",
        "movieid": 3,
        "title": "Title of a third movie",
        "year": 2012
      }
    ]
  }
}

Что теперь делать?

У вас есть выбор на данный момент, вы можете либо:

  1. Добавить «файл» в список свойств, это вернет свойство «файл», местоположение видеофайл.
  2. Используйте JSONRPC, чтобы сообщить xbmc о воспроизведении фильма.

    Использование этого метода лучше всего, когда вы не хотите воспроизводить файл локально (на iPad) но вместо этого на XBMC.

Воспроизведение фильма на XBMCчерез JSONRPC

Это довольно просто, используйте "movieid", который вы получили ранее в следующем запросе:

{
  "jsonrpc": "2.0",
  "method": "Player.Open",
  "params": {
    "item": {
      "movieid": 2
    }
  },
  "id": 1
}

Наконец, я хотел бы отметить, что есть эквивалентные команды для телевизионных эпизодов, как показано дляфильмы.

...