protected async override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); #region try { //注册后台任务 RegisterBackgroundTask(); //读取已下载的文件 DownloadHelper2.LoadDowned(); //加载分区 ApiHelper.SetRegions(); //加载直播头衔 LiveRoom.GetTitleItems(); //ApiHelper.SetEmojis(); } catch (Exception) { } #endregion m = e.Parameter as StartModel; await Task.Delay(1000); this.Frame.Navigate(typeof(MainPage), m); }
protected override void OnNavigatedTo(NavigationEventArgs e) { #region try { //注册后台任务 RegisterBackgroundTask(); // 下面三个同时 await Task.WhenAll( //读取已下载的文件 DownloadHelper2.LoadDowned(), //加载分区 ApiHelper.SetRegions(), //加载直播头衔 LiveRoom.GetTitleItems()); //ApiHelper.SetEmojis(); } catch (Exception ex) { Debug.WriteLine(ex); } #endregion m = e.Parameter as StartModel; await Task.Delay(300); Frame.Navigate(typeof(MainPage), m); }
protected override void OnNavigatedTo(NavigationEventArgs e) { #region try { //注册后台任务 RegisterBackgroundTask(); //读取已下载的文件 DownloadHelper2.LoadDowned(); //加载分区 ApiHelper.SetRegions(); //加载直播头衔 LiveRoom.GetTitleItems(); //ApiHelper.SetEmojis(); } catch (Exception) { } #endregion m = e.Parameter as StartModel; timer = new DispatcherTimer(); timer.Interval = new TimeSpan(0, 0, 1); timer.Tick += Timer_Tick; timer.Start(); if (m.StartType == StartTypes.None && SettingHelper.Get_LoadSplash()) { // await GetResults(); } else { // await Task.Delay(2000); // this.Frame.Navigate(typeof(MainPage), m); } }
public void Init_connection() { lr = new LiveRoom(liveid, cookiestr); lr.sm.ReceivedDanmaku += Receiver_ReceivedDanmaku; lr.sm.StreamStarted += StreamStarted; lr.sm.ExceptionHappened += Sm_ExceptionHappened;; lr.sm.LogOutput += Sm_LogOutput; lr.init_connection(); blr = new BiliLiveRoom(liveid, MainHolder.bililogin); }
/// <summary> /// 检查直播状态(设置直播状态) /// </summary> /// <param name="liveRoom"></param> /// <param name="IsSet">默认不设置直播状态</param> /// <returns></returns> public static bool CheckLiveIsNotPush(LiveRoom liveRoom, bool IsSet = false) { string interface_str = "Live_Channel_GetStatus";//腾讯API直播状态查询接口 if (IsSet) { interface_str = "Live_Channel_SetStatus";//腾讯API直播状态设置接口 } //有效时间 DateTime expireTime = DateTime.Now.AddMinutes(10); var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); var txTime = (expireTime.ToUniversalTime() - epoch).TotalSeconds; long expireUnixTime = Convert.ToInt64(txTime); //安全签名 string apikey = ConfigurationManager.AppSettings["live_apikey"].ToString(); string input = apikey + expireUnixTime.ToString(); string sign = CreateMD5(input); //拼接查询直播状态的url string appid = ConfigurationManager.AppSettings["live_appid"].ToString(); User user = UserHelper.GetUserById(liveRoom.AnchorId); string userCode = user != null ? user.Code : ""; string bizid = ConfigurationManager.AppSettings["live_bizid"].ToString();; string streamId = bizid + "_" + userCode + "_" + (liveRoom.IsThirdparty?"1":"0"); //直播码 string baseUrl = "http://fcgi.video.qcloud.com"; string queryStringUrl = string.Format(@"?appid={0}&interface={1}&Param.s.channel_id={2}&t={3}&sign={4}" , appid, interface_str, streamId, expireUnixTime, sign); if (IsSet) { queryStringUrl = queryStringUrl + @"&Param.n.status=1";//增加设置状态参数 } //判断是否在推流 var reqRest = new RestRequest("common_access", Method.GET); var rsp = RestApiHelper.SendLiveRequest <LiveState>(reqRest, baseUrl, queryStringUrl); var obj = rsp.Data; bool isNotPush = false; if (obj != null && obj.output.Count > 0) { if (obj.output[0].status != 1)//0:断流;1:开启;3:关闭 { isNotPush = true; } } else { isNotPush = true; } return(isNotPush); }
protected async override void OnNavigatedTo(NavigationEventArgs e) { #region switch (new Random().Next(1, 4)) { case 1: txt_Load.Text = "爱国、敬业、诚信、友善"; break; case 2: txt_Load.Text = "富强、民主、文明、和谐"; break; case 3: txt_Load.Text = "自由、平等、公正、法治"; break; default: break; } try { //注册后台任务 RegisterBackgroundTask(); //读取已下载的文件 DownloadHelper2.LoadDowned(); //加载分区 ApiHelper.SetRegions(); //加载直播头衔 LiveRoom.GetTitleItems(); //ApiHelper.SetEmojis(); } catch (Exception) { } #endregion m = e.Parameter as StartModel; timer = new DispatcherTimer(); timer.Interval = new TimeSpan(0, 0, 1); timer.Tick += Timer_Tick; timer.Start(); if (m.StartType == StartTypes.None && SettingHelper.Get_LoadSplash()) { // await GetResults(); } else { // await Task.Delay(2000); // this.Frame.Navigate(typeof(MainPage), m); } }
static void Main(string[] args) { Console.WriteLine("Standalone Payment Recorder"); //Console.Write("Reading config..."); //StreamReader cfile = new StreamReader("config.json"); //Console.WriteLine("Done"); //JObject config = (JObject)JsonConvert.DeserializeObject(cfile.ReadToEnd()); db = new ReduDataBase("rm-uf6ewx55v3s1iu4ok6o.mysql.rds.aliyuncs.com", "reduluye", "#luyeredundancy%"); lr = new LiveRoom(2064239); lr.sm.ReceivedDanmaku += Receiver_ReceivedDanmaku; lr.sm.StreamStarted += StreamStarted; lr.sm.ExceptionHappened += Sm_ExceptionHappened;; lr.sm.LogOutput += Sm_LogOutput; lr.init_connection(); db.connect(); while (true) { Thread.Sleep(int.MaxValue); } }
public async static void Start() { LiveHandler liveHandler = new LiveHandler(); var sroomid = Console.ReadLine(); var roomid = int.Parse(sroomid); //第一个参数是直播间的房间号 //第二个参数是自己实现的处理器 //第三个参数是可选的,可以是默认的消息分发器,也可以是自己实现的消息分发器 LiveRoom room = new LiveRoom(roomid, liveHandler); //等待连接,该方法会反回是否连接成功 //或者使用room.Connected,该属性会反馈连接状态 if (!await room.ConnectAsync()) { Console.WriteLine("连接失败"); return; } Console.WriteLine("连接成功"); Console.WriteLine("按回车结束"); //消息由Dispatcher分发到对应的MessageHandler中对应方法 await room.ReadMessageLoop(); }
protected override async void OnNavigatedTo(NavigationEventArgs e) { switch (new Random().Next(1, 4)) { case 1: LoadText.Text = "爱国、敬业、诚信、友善"; break; case 2: LoadText.Text = "富强、民主、文明、和谐"; break; case 3: LoadText.Text = "自由、平等、公正、法治"; break; default: break; } try { RegisterBackgroundTask(); DownloadHelper2.LoadDowned(); ApiHelper.SetRegions(); LiveRoom.GetTitleItems(); ApiHelper.SetEmojis(); } catch (Exception ex) { Debug.WriteLine(ex); } m = e.Parameter as StartModel; if (m.StartType == StartTypes.None && SettingHelper.LoadSplash) { await GetResults(); this.Frame.Navigate(typeof(MainPage), m); } }
public async Task LiveRoomInfo(int roomid) { var msg = await ReplyAsync($"[Bilibili Live]正在搜索中……(Room ID: {roomid})"); LiveRoom room = null; try { room = LiveRoom.Get(roomid); } catch { } if (room != null) { await msg.ModifyAsync(x => x.Content = "[Bilibili Live]\n" + room.ToString()); } else { await msg.ModifyAsync(x => x.Content = $"[Bilibili Live] 直播间{roomid}信息获取失败"); } }