媒体播放器元素不播放视频,除了不从我的可移动设备获取路径



我正在尝试使用 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>

不能将文件路径参数直接传递给 Uri for CreateFromUri 方法。如果要按 URI 访问 UWP 中的资源,可以使用多个 URI(统一资源标识符(方案来引用来自应用包、应用的数据文件夹或云的文件。为什么不使用 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)
            {
            }
        }
    }

最新更新