Пример #1
0
        public async Task <JsonModel> StartBroadcast(int userid)
        {
            try
            {
                BroadcastRoom r = await _dbcontext.BroadcastRooms.Where(t => t.UserId == userid).FirstOrDefaultAsync();

                if (r == null)
                {
                    return(new JsonModel(false, "失败", "找不到直播间"));
                }
                r.IsLiving = true;
                if (string.IsNullOrEmpty(r.StreamCode))
                {
                    r.StreamCode = this.GenarateStreamCode(userid);
                }
                r.LastLiveTime = DateTime.Now;
                _dbcontext.BroadcastRooms.Update(r);
                await _dbcontext.SaveChangesAsync();

                return(new JsonModel(true, "成功", new Dictionary <string, string>()
                {
                    { "streamCode", r.StreamCode },
                    { "streamChannel", r.StreamChannel }
                }));//返回推流码
            }
            catch (Exception e)
            {
                return(new JsonModel(false, "失败", e.Message));
            }
        }
Пример #2
0
        public async Task <JsonModel> SetRoomInfo(int userid, BroadcastRoom room)
        {
            try
            {
                BroadcastRoom r = await _dbcontext.BroadcastRooms.Where(t => t.UserId == userid).FirstOrDefaultAsync();

                if (r == null)
                {
                    return(new JsonModel(false, "修改失败", null));
                }
                r.Name          = room.Name;
                r.Notice        = room.Notice;
                r.ClassId       = room.ClassId;
                r.CoverUrl      = room.CoverUrl;
                r.IsCustomCover = room.IsCustomCover;
                _dbcontext.BroadcastRooms.Update(r);
                await _dbcontext.SaveChangesAsync();

                return(new JsonModel(true, "修改成功"));
            }
            catch (Exception e)
            {
                return(new JsonModel(false, "修改失败", e.Message));
            }
        }
Пример #3
0
        public async Task <JsonModel> UpdateStreamCode(int userid)
        {
            BroadcastRoom r = await _dbcontext.BroadcastRooms.Where(t => t.UserId == userid).FirstOrDefaultAsync();

            if (r == null)
            {
                return(new JsonModel(false, "失败", "找不到直播间"));
            }
            r.StreamCode   = this.GenarateStreamCode(userid);
            r.LastLiveTime = DateTime.Now;
            _dbcontext.BroadcastRooms.Update(r);
            await _dbcontext.SaveChangesAsync();

            return(new JsonModel(true, "成功", r.StreamCode));
        }
Пример #4
0
        public async Task <IActionResult> CreateBroadcastRoom()
        {
            UserData user = UserData.Current;

            if (user == null)
            {
                return(Json(false, "没有登录", null));
            }
            var room = new BroadcastRoom()
            {
                UserId  = user.UserId,
                ClassId = int.Parse(GetVal("CLASSID")),
                Name    = GetVal("Name"),
                Notice  = GetVal("Notice")
            };

            return(Json(await _anchorService.CreateBroadcastRoom(user.UserId, room)));
        }
Пример #5
0
        public async Task <IActionResult> SetRoomInfo()
        {
            UserData user = UserData.Current;

            if (user == null)
            {
                return(Json(false, "没有登录", null));
            }
            var room = new BroadcastRoom()
            {
                UserId        = user.UserId,
                ClassId       = int.Parse(GetVal("CLASSID")),
                Name          = GetVal("Name"),
                Notice        = GetVal("Notice"),
                CoverUrl      = GetVal("CoverUrl"),
                IsCustomCover = GetVal("IsCustomCover") == "true" ? true : false
            };

            return(Json(await _anchorService.SetRoomInfo(user.UserId, room)));
        }
Пример #6
0
        public async Task <JsonModel> CreateBroadcastRoom(int userid, BroadcastRoom room)
        {
            bool isExist = await(from a in _dbcontext.Anchors where a.UserId == userid select 1).AnyAsync();

            if (isExist)
            {
                return(new JsonModel(false, "已经有直播间"));
            }

            Anchor anchor = new Anchor
            {
                UserId   = userid,
                Follower = 0
            };

            var r = await _dbcontext.Anchors.AddAsync(anchor);

            await _dbcontext.SaveChangesAsync();

            int anchorId = anchor.Id;
            int roomNum  = 10000;

            //直播间号
            if (await _dbcontext.BroadcastRooms.AnyAsync())
            {
                roomNum = await _dbcontext.BroadcastRooms.MaxAsync(t => t.RoomNum) + 1;
            }

            room.RoomNum       = roomNum;
            room.IsBan         = false;
            room.IsLiving      = false;
            room.AnchorId      = anchorId;
            room.UserId        = userid;
            room.StreamChannel = roomNum.ToString();

            await _dbcontext.BroadcastRooms.AddAsync(room);

            await _dbcontext.SaveChangesAsync();

            return(new JsonModel(true, "创建成功", room));
        }
Пример #7
0
        public async Task <JsonModel> StopBroadcast(int userid)
        {
            try
            {
                BroadcastRoom r = await _dbcontext.BroadcastRooms.Where(t => t.UserId == userid).FirstOrDefaultAsync();

                if (r == null)
                {
                    return(new JsonModel(false, "失败", "找不到直播间"));
                }
                r.IsLiving = false;

                _dbcontext.BroadcastRooms.Update(r);
                await _dbcontext.SaveChangesAsync();

                return(new JsonModel(true, "成功", null));//返回推流码
            }
            catch (Exception e)
            {
                return(new JsonModel(false, "失败", e.Message));
            }
        }