libjson (https://github.com/cinemast/libjson-rpc-cpp)과 kodi의 API (이전에 XBMC를 재생/일시 중지하고 중지하기 위해 사용하고 있습니다. . 는 다음과 같이 일시 정지/jsonrpcstub가 플레이, 처리 할 수있는 JSON 파일을 만들 : 플레이를 다시 시작할 수 없습니다/다시 일시 정지하는 방법은 내가 사용재생 목록의 첫 번째 항목을 다시 시작하기 위해 Kodi (XBMC)가있는 JSON RPC
[
{
"name" : "Player.PlayPause",
"description": "Pauses or unpause playback and returns the new state",
"params": [
{
"$ref": "Player.Id",
"name": "playerid",
"required": true
},
{
"$ref": "Global.Toggle",
"default": "toggle",
"name": "play"
}
],
"returns": {
"$ref": "Player.Speed"
},
"type": "method"
}
]
을 그리고 내가 사용
#include "xbmcremoteclient.h"
#include <jsonrpccpp/client/connectors/httpclient.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#ifndef WIN32
#include <termios.h>
#else
#include <conio.h>
#endif
#include <unistd.h>
#include <time.h>
#include <iostream>
using namespace jsonrpc;
using namespace std;
int main(int argc, char** argv) {
try {
HttpClient httpclient("http://user:[email protected]:8080/jsonrpc");
XbmcRemoteClient stub(httpclient);
stub.Player_PlayPause(0);
}
catch(JsonRpcException& e) {
cerr << e.what() << endl;
}
return 0;
}
이 명령을 실행할 수있는 간단한 실행 파일을 만듭니다. 그러나 goTo 함수를 구현하려고하면 다음과 같이 작동합니다. http://kodi.wiki/view/JSON-RPC_API/v6#Player.GoTo
나는 그것을 관리 할 수 없습니다. 나는이 최대 파일 json으로 변경되었습니다
[
{"jsonrpc": "2.0", "method": "Player.PlayPause", "params": { "playerid": 0 }, "id": 1},
{
"name": "Player.GoTo":,
"params": [
{
"name": "playerid",
"required": true
},
{
"name": "to",
"required": true,
"type": [
{
"enums": [
"previous",
"next"
],
"type": "string"
},
{
"description": "position in playlist"
}
]
}
],
"returns": {
"type": "string"
}
}
]
을하지만 jsonrpcstub을 통해 그것을 실행하려고 할 때 구문 오류가 계속 :
Exception -32700 : JSON_PARSE_ERROR: The JSON-Object is not JSON-Valid: specification file contains syntax errors
은 가급적 난 그냥 내가 할 JSON 파일을 실행됩니다 jsonrpcstub를 통해 http://myKodiMachine.xy:8080/jsonrpc으로 탐색하지만, 이미 구문 오류가 생성됩니다. 그의 파일은 다음과 같이 시작됩니다 :
{
"description": "JSON-RPC API of XBMC",
"id": "http://xbmc.org/jsonrpc/ServiceDescription.json",
"methods": {
"Addons.ExecuteAddon": {
"description": "Executes the given addon with the given parameters (if possible)",
"params": [
{
"name": "addonid",
"required": true,
"type": "string"
},
{
"default": "",
"name": "params",
"type": [
{
"additionalProperties": {
"default": "",
"type": "string"
},
"type": "object"
},
{
"items": {
"type": "string"
},
"type": "array"
},
{
"description": "URL path (must start with/or ?",
"type": "string"
}
]
},
{
"default": false,
"name": "wait",
"type": "boolean"
}
],
"returns": {
"type": "string"
},
"type": "method"
},
"Addons.GetAddonDetails": {
"description": "Gets the details of a specific addon",
"params": [
{
"name": "addonid",
"required": true,
"type": "string"
},
{
"$ref": "Addon.Fields",
일부 특수한 이유로 인해 유효한 JSON이 아닙니다. kodi에서 재생 목록을 중지하거나 다시 시작할 수있는 방향 (예 : 다른 방법)의 포인터는 도움이 될 것입니다. 특히 많은 스트림을 재생할 때부터이 기능이 필요합니다. 일시 정지하면 버퍼링 (매우 편리하지는 않습니다)되므로 중지하거나 다시 시작하는 것이 좋습니다.
''name ":"Player.GoTo ":,'유효하지 않습니다. JSON –
사실 json 오류가 발생했지만 여전히 왜 내가 할 수 없는지 이해하지 못합니다. kodi jsonrpc 서버가 처음에 나에게 반환하는 모든 기능을 구문 분석합니다 ... – tomzooi