MediaPlayerElement не воспроизводит видео, кроме того, что он не выбирает путь с моего съемного устройства - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь воспроизвести видео с моего флэш-накопителя с помощью MediaPlayerElement, установив его источник в приведенном ниже коде.Я проверил, что путь правильный (по крайней мере, я так думаю) и отформатирован так: D: \\ video.mp4.При передаче этого в CreateFromUri, он говорит, что путь к файлу неверен.

Код позади:

public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();


        GetDrive();
    }

    public async void GetDrive()
    {
        StorageFolder externalDevices = KnownFolders.RemovableDevices;
        IReadOnlyList<StorageFolder> externalDrives = await externalDevices.GetFoldersAsync();
        StorageFolder x = externalDrives[0];
        IReadOnlyList<StorageFile> items = await x.GetFilesAsync();

        foreach (StorageFile file in items)
        {
            try
            {
                Uri uri = new Uri(file.Path);
                mediaPlayer.Source = MediaSource.CreateFromUri(uri);
            }
            catch (Exception ex)
            {

            }
        }
    }
}

Страница:

<Grid >

    <MediaPlayerElement x:Name="mediaPlayer"
                Width="400"
                AutoPlay="True"
                AreTransportControlsEnabled="True"/>

</Grid>

1 Ответ

1 голос
/ 13 июня 2019

Не удалось передать параметр пути к файлу в Uri для метода CreateFromUri напрямую. Если вы хотите получить доступ к ресурсам в UWP через Uri, существует несколько схем URI (Uniform Resource Identifier) ​​*, которые вы можете использовать для ссылки на файлы, которые поступают из пакета вашего приложения, папок данных вашего приложения или облака , Почему бы вам не использовать метод CreateFromStorageFile ?

    public async void GetDrive()
    {
        StorageFolder externalDevices = KnownFolders.RemovableDevices;
        IReadOnlyList<StorageFolder> externalDrives = await externalDevices.GetFoldersAsync();
        StorageFolder x = externalDrives[0];
        IReadOnlyList<StorageFile> items = await x.GetFilesAsync();

        foreach (StorageFile file in items)
        {
            try
            {
                mediaPlayer.Source = MediaSource.CreateFromStorageFile(file);
            }
            catch (Exception ex)
            {

            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...