同步操作将从 郑州微厦/AI培训学习-题库-考试-视频-直播 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Newtonsoft.Json;using Song.Entities;using Song.ServiceInterfaces;using Song.ViewData.Attri;using WeiSha.Core;using System.Reflection;using pili_sdk;using Newtonsoft.Json.Linq;namespace Song.ViewData.Methods{/// <summary>/// 直播/// </summary>public class Live : ViewMethod, IViewAPI{#region 七牛云直播的配置管理/// <summary>/// 记录直播的各种设置项/// </summary>/// <param name="letter"></param>[HttpPut, HttpGet,HttpPost][Admin]public int Setup(Letter letter){try{//记录keystring akey = letter.GetParameter("AccessKey").String;string skey = letter.GetParameter("SecretKey").String;if (string.IsNullOrWhiteSpace(akey) || akey.Trim() == "") throw new Exception("AccessKey不可为空");if (string.IsNullOrWhiteSpace(skey) || skey.Trim() == "") throw new Exception("SecretKey不可为空");Business.Do<ILive>().SetupKey(akey, skey);//直播空间string space = letter.GetParameter("LiveSpace").String;Business.Do<ILive>().SetupLiveSpace(space);////播放域名//string rtmp = letter.GetParameter("rtmp").String;//string hls = letter.GetParameter("hls").String;//string hdl = letter.GetParameter("hdl").String;//Business.Do<ILive>().SetupLive(rtmp, hls, hdl);////推流域名//Business.Do<ILive>().SetupPublish(letter.GetParameter("Publish").String);//HDL直播播放域名,是否启用HTTPSBusiness.Do<ILive>().SetupProtocol(letter.GetParameter("Protocol").String);//直播截图的域名Business.Do<ILive>().SetupSnapshot(letter.GetParameter("Snapshot").String);//点播域名Business.Do<ILive>().SetupVod(letter.GetParameter("Vod").String);Business.Do<ISystemPara>().Refresh();Business.Do<ILive>().Initialization();return 1;}catch (Exception ex){throw ex;}}/// <summary>/// 获取设置项/// </summary>/// <returns></returns>[HttpGet][SuperAdmin]public Dictionary<string, string> GetSetup(){Dictionary<string, string> dic = new Dictionary<string, string>();object obj = Business.Do<ILive>();Type type = obj.GetType();foreach (PropertyInfo pi in type.GetProperties()){if (pi.Name.StartsWith("Get")){string key = pi.Name.Substring(3);object objResult = pi.GetValue(obj, null);dic.Add(key, objResult == null ? "" : objResult.ToString());}}return dic;}/// <summary>/// 测试链接是否通过/// </summary>/// <param name="ak">accesskey密钥</param>/// <param name="sk">secretkey密钥</param>/// <param name="hubname">直播空间名</param>/// <returns></returns>public bool Test(string ak, string sk, string hubname){try{return Business.Do<ILive>().Test(ak, sk, hubname);}catch(Exception ex){throw ex;}}#endregion/// <summary>/// 获取七牛云直播流的流信息/// </summary>/// <param name="name">直播流名称</param>/// <returns></returns>public pili_sdk.pili.Stream GetStream(string name){return pili_sdk.Pili.API<pili_sdk.IStream>().GetForTitle(name);}/// <summary>/// 七牛云直播流的流信息/// </summary>/// <param name="name">直播流名称</param>/// <returns>"liveid":直播流id,"title":直播流名称,"publish":推流地址,"playhls":网页播放地址, "playrtmp":客户端播放地址,"cover":封面</returns>public JObject StreamInfo(string name){//直播截图的域名string snapshot = Business.Do<ILive>().GetSnapshot;string proto = Business.Do<ILive>().GetProtocol; //协议,http还是https//直播流pili_sdk.pili.Stream stream = Pili.API<IStream>().GetForTitle(name);//推流地址string publist = string.Format("rtmp://{0}/{1}/{2}", stream.PublishRtmpHost, stream.HubName, stream.Title);//播放地址string playhls = string.Format("{0}://{1}/{2}/{3}.m3u8", proto, stream.LiveHlsHost, stream.HubName, stream.Title);string playrtmp = string.Format("rtmp://{0}/{1}/{2}.m3u8", stream.PlayRtmpHost, stream.HubName, stream.Title);//封面地址string cover = string.Empty;if (!string.IsNullOrWhiteSpace(snapshot))cover = string.Format("http://{0}/{1}/{2}.jpg", snapshot, stream.HubName, stream.Title);JObject jo = new JObject();jo.Add("liveid", stream.StreamID);jo.Add("title", stream.Title);jo.Add("publish", publist);jo.Add("playhls", playhls);jo.Add("playrtmp", playrtmp);jo.Add("cover", cover);return jo;}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。