Играть .mp3 UWP с папкой хранения - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу сделать небольшой проект.Что-то вроде деки с шутками с работы.Но я не могу воспроизводить звуки в UWP.Я нашел это:

private async System.Threading.Tasks.Task Button_ClickAsync(object sender, RoutedEventArgs e)
        {

            MediaElement PlayMusic = new MediaElement();
            PlayMusic.AudioCategory = Windows.UI.Xaml.Media.AudioCategory.Media;
            StorageFolder Folder = Windows.ApplicationModel.Package.Current.InstalledLocation;
            Folder = await Folder.GetFolderAsync("folder");
            StorageFile sf = await Folder.GetFileAsync("song.mp3");
            PlayMusic.SetSource(await sf.OpenAsync(FileAccessMode.Read), sf.ContentType);
            PlayMusic.Play();
        }`

но я не знаю, где я должен поставить звук.Я попробовал папку Assets, но она не работала.Я новичок и прошу прощения за мой плохой английский.

1 Ответ

0 голосов
/ 10 декабря 2018

Вы можете выбрать файл для воспроизведения, используя FileOpenPicker , или вы можете поместить свой файл в папку активов и получить к нему доступ через uri.Ниже добавлен образец кода ниже

// Воспроизведение из файла

private async void PlayFromFile(object sender, RoutedEventArgs e)
    {
        //Play from file
        FileOpenPicker openPicker = new FileOpenPicker();
        openPicker.ViewMode = PickerViewMode.Thumbnail;
        openPicker.FileTypeFilter.Add(".m4p");
        openPicker.FileTypeFilter.Add(".mp3");
        var sf = await openPicker.PickSingleFileAsync();
        MediaPlayer mediaPlayer = new MediaPlayer();
        mediaPlayer.Source = MediaSource.CreateFromStorageFile(sf);
        mediaPlayer.Play();           
    }

// Воспроизведение из папки ресурсов

 private void PlayFromAssetsFolder(object sender,RoutedEventArgs e)
    {
        //Play from assets folder
        MediaPlayer mediaPlayer = new MediaPlayer();
        mediaPlayer.Source = MediaSource.CreateFromUri(new Uri("ms-appx:///Assets/audio.mp3"));
        mediaPlayer.Play();
    }
...