コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
 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);
 }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
        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);
            }
        }
コード例 #7
0
 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);
     }
 }
コード例 #8
0
ファイル: Main.cs プロジェクト: is-a-gamer/Bilibili
 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();
 }
コード例 #9
0
        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);
            }
        }
コード例 #10
0
        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}信息获取失败");
            }
        }