/// <summary>
 /// QM音乐播放状态改变(从播放菜单发起,激发该页面)
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void QMusicPlayStateChanged(object sender, QMusicPlayStateChangedArgs e)
 {
     Task.Factory.StartNew(() =>
     {
         ChangeMusicPlayBtnState(_nextPlayingTbObject.Value, e.IsToPlay);
     }, CancellationToken.None, TaskCreationOptions.None, _syncTaskScheduler);
 }
        /// <summary>
        /// QM播放
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void QMusicPlayStateChanged(object sender, QMusicPlayStateChangedArgs e)
        {
            Task.Factory.StartNew(() =>
            {
                //进行播放并且是属于(当前无播放源、不是同一首歌、播放失败)之一的情况
                if (e.IsToPlay && e.IsNeedRefresh &&
                    (_mediaPlayer.Source == null || !_mediaPlayer.Source.Equals(e.MusicInfo.Uri) || _isOpenFailedOfCurrentPlayingMusic))
                {
                    _isPlaying = false;
                    PlayNewMusic(e.MusicInfo.Uri);
                    _musicPlayerMenuViewModel.Id         = 0;
                    _musicPlayerMenuViewModel.MusicName  = e.MusicInfo.Name;
                    _musicPlayerMenuViewModel.SingerName = e.MusicInfo.SingerName;
                    _musicPlayerMenuViewModel.PhotoUri   = e.MusicInfo.PhotoUri ?? _defaultPhotoUri;
                    _musicSourceType = MusicSourceType.QM;
                    InitILikeState();

                    if (MusicPlayListViewModel?.MusicPlayList != null)
                    {
                        var music = MusicPlayListViewModel.MusicPlayList.SingleOrDefault(m => m.Id.Equals(e.MusicInfo.Id));
                        if (music == null)
                        {
                            var newMusic = new MusicOfPlayListViewModel()
                            {
                                Id           = e.MusicInfo.Id,
                                Name         = e.MusicInfo.Name,
                                SingerName   = e.MusicInfo.SingerName,
                                TimeDuration = e.MusicInfo.TimeDuration
                            };
                            MusicPlayListViewModel.MusicPlayList.Add(newMusic);
                            LvMusicPlayList.SelectedItem = newMusic;
                        }
                        else
                        {
                            LvMusicPlayList.SelectedItem = music;
                        }
                    }
                }
                else
                {
                    ChangePlayState();
                }
            }, CancellationToken.None, TaskCreationOptions.None, _syncTaskScheduler);
        }