public Task <KodiPlayerInfo> Play(string url) { return(Task.Run(async() => { try { if (!url.StartsWith("http") && File.Exists(url)) { url = System.Web.HttpUtility.UrlEncode(url); url = "http://" + HTTP_Stream_Server.GetLocalIPAddress() + ":" + StreamPort + "/" + url; } var jsonrpc = new KodiJSON() { Id = 1, Jsonrpc = "2.0", Method = "Player.Open", Params = new KodiJSON.Kodi_Params() { Properties = null, PlayerID = null, Item = new KodiJSON.Kodi_Item { File = url } } }; var raw = sendJson(jsonrpc); var obj = Newtonsoft.Json.Linq.JObject.Parse(raw); if (obj.Value <string>("result").Equals("OK")) { return await GetProperties(); } else { PlayerInfo.Status = KodiPlayerStatus.Stopped; return PlayerInfo; } } catch (Exception x) { System.Windows.Forms.MessageBox.Show(x.ToString()); } PlayerInfo.Status = KodiPlayerStatus.Error; return PlayerInfo; })); }
public Kodi() { StreamPort = new Random().Next(8200, 9999); server = new HTTP_Stream_Server(StreamPort); server.Start(); }