【问题标题】:Plugin.MediaManager.Forms: Video will not play from Xamarin.Forms App Data DirectoryPlugin.MediaManager.Forms:视频不会从 Xamarin.Forms 应用数据目录播放
【发布时间】:2020-09-06 06:22:19
【问题描述】:

我正在尝试使用 Plugin.MediaManager.Forms nuget 包在 Xamarin 应用上播放视频。视频存储在 Xamarin 应用数据目录中,因此请尝试通过构建具有文件名的文件夹的路径来播放视频。

var path = Path.Combine(Xamarin.Essentials.FileSystem.AppDataDirectory, filename);
await CrossMediaManager.Current.Play(path);

不幸的是,当我拨打Play(path) 时,我只是得到一个空白屏幕。

我也尝试过使用 FileInfo,但我仍然只是得到一个空白屏幕。

var path = Path.Combine(Xamarin.Essentials.FileSystem.AppDataDirectory, filename);
FileInfo fileInfo = new FileInfo(path);
await CrossMediaManager.Current.Play(fileInfo);

我在 Android、UWP 和 iOS 平台上都进行了测试,结果相同。

【问题讨论】:

  • 不知道框架是否支持你的视频文件
  • 这是一个标准的 MP4 文件,可以在原生视频播放器中播放。

标签: c# android ios xamarin.forms uwp


【解决方案1】:

根据您的描述,Xamarin.Essentials.FileSystem.AppDataDirectory 路径是/data/user/0/Package name/files/,我在文件夹中添加一个.mp4 文件,然后.mp4 视频播放成功。

所以请确认您是否有 mp4 文件。

 <StackLayout>
        <Button
            x:Name="btnplay"
            Clicked="btnplay_Clicked"
            Text="play video" />
        <video:VideoView HeightRequest="300" WidthRequest="200" />
    </StackLayout>

 private async void btnplay_Clicked(object sender, EventArgs e)
    {

        string filename = "minions.mp4";
        var path = Path.Combine(Xamarin.Essentials.FileSystem.AppDataDirectory, filename);

        await CrossMediaManager.Current.Play(path);
    }

可以看到files文件夹中有一个minions.mp4文件,路径为/data/user/0/demo.demo3/files/minions.mp4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多