Пример #1
0
        public async Task NextSong(string sessionId, bool fromPlay)
        {
            if (SessionHandler.IsValidSession(sessionId))
            {
                QueueModel  myQueue  = SessionHandler.GetQueue(sessionId);
                PlayerModel myPlayer = SessionHandler.GetPlayer(sessionId);
                if (myQueue.Queue.Count > 0)
                {
                    QueueItemModel next = myQueue.Queue[0];
                    myQueue.PopFromQueue();
                    myPlayer.VideoId      = next.Video.VideoId;
                    myPlayer.VideoName    = next.Video.Name;
                    myPlayer.TotalSeconds = 0;
                    myPlayer.Start();

                    if (fromPlay)
                    {
                        await Clients.Group(sessionId).SendAsync("Play", myPlayer.GetVideoDetails());
                    }
                    else
                    {
                        await Clients.Group(sessionId).SendAsync("NextSong", myPlayer.GetVideoDetails());
                    }
                }
                else
                {
                    await DisposePlayer(sessionId);
                }
            }
        }