Пример #1
0
        internal async void SetUpVM(IMediaPlayerElementController musicPlayerView)
        {
            ShowLoadingPanel(LoadingPanelText);

            try
            {
                MusicPlayerController = musicPlayerView;
                MusicPlayerController.ClearPlaylist();

                MediaFileCollection.Clear();

                // Set index to -1 to indicate no selection
                SelectedMediaIndex = -1;

                var filesLoaded = await GetMediaFiles();

                if (filesLoaded && MediaFileCollection.Count > 0)
                {
                    MusicPlayerVisibility = true;
                    SelectedMediaIndex    = 0;
                    UpdateMusicPlayer();
                }
                else
                {
                    MusicPlayerVisibility = false;
                }
            }
            catch (Exception ex)
            {
                LogService.Write(ex.Message, LoggingLevel.Error);
            }

            HideLoadingPanel();
        }
        private void RefreshUI()
        {
            InvokeOnUIThread(() =>
            {
                switch (MusicPlayerState)
                {
                case MediaPlaybackState.Playing:
                    TelemetryService.WriteEvent("MusicPlaying");
                    MusicPlayerStatusText = MusicPlayerStatusPlayingText;
                    if (SelectedMediaIndex >= 0 && SelectedMediaIndex < MediaFileCollection.Count)
                    {
                        var selectedFile      = MediaFileCollection.ElementAt(SelectedMediaIndex);
                        MusicPlayerStatusText = string.Format(Common.GetLocalizedText("MusicPlayerStatusFormat"), MusicPlayerCurrentlyPlayingText, selectedFile.DisplayName);
                    }
                    break;

                case MediaPlaybackState.Paused:
                    MusicPlayerStatusText = MusicPlayerStatusPausedText;
                    break;

                case MediaPlaybackState.Opening:
                    MusicPlayerStatusText = MusicPlayerStatusLoadingText;
                    break;

                case MediaPlaybackState.Buffering:
                    MusicPlayerStatusText = MusicPlayerStatusLoadingText;
                    break;

                default:
                    MusicPlayerStatusText = MusicPlayerStatusDefaultText;
                    break;
                }
            });
        }
Пример #3
0
        private async Task <bool> GetMediaFiles()
        {
            var fileList = await KnownFolders.MusicLibrary.GetFilesAsync();

            foreach (var file in fileList.Where(x => x.ContentType.Contains("audio")))
            {
                // Add to collection for displaying list of media file sources
                MediaFileCollection.Add(file);

                // Add source to the media player's playlist
                var source = MediaSource.CreateFromStream(await file.OpenAsync(Windows.Storage.FileAccessMode.Read), file.ContentType);
                MusicPlayerController.AddToPlaylist(source);
            }
            return(true);
        }
        internal async void SetUpVM(IMediaPlayerElementController musicPlayerView)
        {
            bool reload = true;

            while (reload)
            {
                reload = false;
                MusicPlayerVisibility = false;
                ShowLoadingPanel(LoadingPanelText);

                try
                {
                    MusicPlayerController = musicPlayerView;
                    MusicPlayerController.ClearPlaylist();

                    MediaFileCollection.Clear();

                    // Set index to -1 to indicate no selection
                    SelectedMediaIndex = -1;

                    var filesLoaded = await GetMediaFiles();

                    if (filesLoaded && MediaFileCollection.Count > 0)
                    {
                        MusicPlayerVisibility = true;
                        SelectedMediaIndex    = 0;
                        UpdateMusicPlayer();
                    }
                    else
                    {
                        // Alert the user if no media files found and wait for input to reload the page or close the prompt
                        reload = await AppService.YesNoAsync(NoMusicFoundText, InstructionsText, ReloadButtonText, CloseButtonText);
                    }
                }
                catch (Exception ex)
                {
                    LogService.Write(ex.Message, LoggingLevel.Error);
                }

                HideLoadingPanel();
            }
        }
        private async Task <bool> GetMediaFiles()
        {
            var query        = CommonFileQuery.DefaultQuery;
            var queryOptions = new QueryOptions(query, new[] { ".mp3", ".wav" })
            {
                FolderDepth = FolderDepth.Shallow
            };
            var queryResult = KnownFolders.MusicLibrary.CreateFileQueryWithOptions(queryOptions);
            var fileList    = await queryResult.GetFilesAsync();

            foreach (var file in fileList)
            {
                // Add to collection for displaying list of media file sources
                MediaFileCollection.Add(file);

                // Add source to the media player's playlist
                var source = MediaSource.CreateFromStream(await file.OpenAsync(Windows.Storage.FileAccessMode.Read), file.ContentType);
                MusicPlayerController.AddToPlaylist(source);
            }
            return(true);
        }
Пример #6
0
        private async void RefreshUI()
        {
            switch (MusicPlayerState)
            {
            case MediaPlaybackState.Playing:
                TelemetryService.WriteEvent("MusicPlaying");
                MusicPlayerStatusText = MusicPlayerStatusPlayingText;
                break;

            case MediaPlaybackState.Paused:
                MusicPlayerStatusText = MusicPlayerStatusPausedText;
                break;

            case MediaPlaybackState.Opening:
                MusicPlayerStatusText = MusicPlayerStatusLoadingText;
                break;

            case MediaPlaybackState.Buffering:
                MusicPlayerStatusText = MusicPlayerStatusLoadingText;
                break;

            default:
                MusicPlayerStatusText = MusicPlayerStatusDefaultText;
                break;
            }

            if (SelectedMediaIndex >= 0 && SelectedMediaIndex < MediaFileCollection.Count)
            {
                _currentFile = MediaFileCollection.ElementAt(SelectedMediaIndex);
                await RefreshMediaInfoAsync(_currentFile);
            }
            else
            {
                SongTitleText       = string.Empty;
                SongArtistText      = string.Empty;
                SongThumbnailSource = DefaultPicture;
            }
        }