Example #1
0
        public PlayerViewModel(IPlayerModel _model)
        {
            this.Model = _model;
            Helpers.SaveAudios.AddCache();
            Model.AddCacheToList(SaveAudiosList);
            if (SaveAudiosList.Items.Count != 0)
            {
                NoSaveMusic = Visibility.Hidden;
            }
            Model.GetUserAudio();
            State = PlaylistState.Own;
            //Асинхронная загрузка аудио пользователя
            var sourceOwnMusic = new SourceList <OneAudioViewModel>();

            sourceOwnMusic.Connect().ObserveOn(RxApp.MainThreadScheduler).Bind(UserAudios).DisposeMany().Subscribe();
            Model.AddAudioToListAsync(ApiDatas.Audio, sourceOwnMusic);
            //Установка параментров плеера
            Playlist = new Playlist(new OwnAudios(this));
            Playlist.SetAudioInfo(this);
            Volume = 30;
            Player.controls.stop();

            //Асинхронное получение плейлистов
            var sourceAlbums = new SourceList <AlbumViewModel>();

            sourceAlbums.Connect().ObserveOn(RxApp.MainThreadScheduler).Bind(PlayLists).DisposeMany().Subscribe();
            Model.GetPlaylistsAsync(UserDatas.UserId, sourceAlbums);
            //Ассинхронная загрузка друзей
            var sourceFriendsMusic = new SourceList <FriendsMusicViewModel>();

            sourceFriendsMusic.Connect().ObserveOn(RxApp.MainThreadScheduler).Bind(FriendsMusic).DisposeMany()
            .Subscribe();
            Model.DownloadFriendsWithOpenAudioAsync(sourceFriendsMusic);
            FriendsMusicSelectedIndex = -1;


            _durrationTimer = new DispatcherTimer
            {
                Interval = new TimeSpan(0, 0, 0, 0, 20)
            };
            _durrationTimer.Tick += DurrationTimer_Tick;
            _durrationTimer.Start();
        }