0

我正在与 XBMC 合作。我已经在我的系统中安装了 XBMC(Windows 7、32 位)。Xbmc 在我的系统中运行良好。我开发了一个应用程序,以便从 Ipad 远程控制 Xbmc。为了从 Xbmc 检索音乐文件或视频文件,我无法。通过搜索xbmc的论坛,我发现我们可以编写一个sql查询来获取它们。但是,问题是我无法确定数据库在我的系统中的位置。有人帮我看看在哪里可以找到它。

问候,苏什玛。

4

1 回答 1

3

数据库本身

默认情况下,数据库的位置是 wiki 页面XBMC 数据库中描述的位置, 但实际位置可以由用户更改,或者可以完全使用不同的数据库技术。

会影响这一点的设置位于advancedsettings.xml中。

总的来说,XBMC 开发人员建议不要直接访问数据库

JSONRPC

为了帮助与数据库交互,XBMC 支持 JSONRPC 查询,其中一个缺点是 XBMC 需要同时运行才能响应这些查询。主要优点是 XBMC 将为您找到数据库并通过通用接口公开对它的访问。

JSONRPC 支持首先在“Darhma”(v10)中添加到 XBMC,在“Eden”(v11)中变得非常有用,并且将在“Frodo”(v12)中支持几乎所有可能的东西。有关 JSONRPC 使用的信息可以在 wiki中找到。

一个例子

在此示例中,我假设您的目标是“Eden”,这是 XBMC 的当前稳定版本。我还用新行格式化了以下内容,这些不是必需的,也不存在于 XBMC 的响应中。

要求

如果您要使用 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 上播放文件时,最好使用此方法。

通过 JSONRPC 在 XBMC 上播放电影

这很简单,使用您之前在以下请求中收到的“movieid”:

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

最后,我会注意到电视剧集的命令与电影相同。

于 2012-09-08T02:36:51.217 回答