105 lines
3.6 KiB
C#
105 lines
3.6 KiB
C#
|
|
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.Common;
|
|||
|
|
using System.Reflection;
|
|||
|
|
using pili_sdk;
|
|||
|
|
|
|||
|
|
namespace Song.ViewData.Methods
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 直播
|
|||
|
|
/// </summary>
|
|||
|
|
public class Live : IViewAPI
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 记录直播的各种设置项
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="letter"></param>
|
|||
|
|
[HttpPost]
|
|||
|
|
[Admin]
|
|||
|
|
public int Setup(Letter letter)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
//记录key
|
|||
|
|
string 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直播播放域名,是否启用HTTPS
|
|||
|
|
Business.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;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|