首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin.Forms MediaManager从本地存储区播放视频

Xamarin.Forms MediaManager从本地存储区播放视频
EN

Stack Overflow用户
提问于 2020-01-13 20:39:38
回答 1查看 3.3K关注 0票数 1

我正在创建自定义的跨平台视频播放器与MediaManager。它播放来自https的视频,但我希望它能从本地存储区播放视频。

代码语言:javascript
复制
        var folder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
        folder = Path.Combine(folder, "UserVideos/testvideo.mp4");
        videoPlayer.Source = folder;
        CrossMediaManager.Current.Play("file://" + "/UserVideos/testvideo.mp4");

我试过这样做,但它不播放视频。文件夹UserVideos位于主命名空间中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-14 07:19:17

您是否确认文件testvideo.mp4是存储在内部存储还是外部存储?从您的代码中,我猜您希望从内部存储中获取视频,但是内部存储中的文件不能共享,而且您看不到它。

https://learn.microsoft.com/en-us/xamarin/android/platform/files/#internal-vs-external-storage

因此,当使用文件:// based时,我建议您可以在资产文件夹BuildAction is AndroidAsset中复制您的视频。

然后播放这样的视频:

代码语言:javascript
复制
CrossMediaManager.Current.Play("file:///android_asset/minions.mp4");

我通过Nuget软件包安装Plugin.MediaManager.Forms,然后在Mainactivity.cs中安装:

代码语言:javascript
复制
CrossMediaManager.Current.Init(this);

MainPage.xaml:

代码语言:javascript
复制
 <StackLayout>
        <video:VideoView HeightRequest="300" WidthRequest="200" />

        <Button Text="play local video" Clicked="BtnPlayLocal_Clicked"/>
    </StackLayout>



 private void BtnPlayLocal_Clicked(object sender, EventArgs e)
    {           
        CrossMediaManager.Current.Play("file:///android_asset/minions.mp4");
    }

更新

如果您想在BundleResource中播放视频,请在资源文件夹BuildAction is 中添加视频

然后播放这样的视频:

代码语言:javascript
复制
CrossMediaManager.Current.PlayFromResource("minions.mp4");

完整代码:

代码语言:javascript
复制
private  void BtnPlayLocal_Clicked(object sender, EventArgs e)
    {
        if (Device.RuntimePlatform == Device.iOS)
        {
            CrossMediaManager.Current.PlayFromResource("minions.mp4");
        }
        else if (Device.RuntimePlatform == Device.Android)
        {
            CrossMediaManager.Current.Play("file:///android_asset/minions.mp4");
        }

    }

以下是Github中的示例:

https://github.com/CherryBu/VideoSample

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59723841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档