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; } }); }
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); }
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; } }