【问题标题】:Xamarin Forms Video player with local mp4带有本地 mp4 的 Xamarin Forms 视频播放器
【发布时间】:2017-12-30 03:14:54
【问题描述】:

我使用 Xamarin Forms 制作一个带有视频播放器的页面,以播放 Xamarin.Android 的本地 mp4。

因此,我在我的 Xamarin.Droid(在 Resources 文件夹中)中创建了一个“原始”文件夹,并将我的视频与 AndroidResource 一起用于编译器。

我使用this插件来显示我的视频,因为我不想有控制器,我想循环我的视频。

但是,它说:无法播放视频。

我认为是因为它没有找到视频...

我不知道该如何解决。

感谢您的帮助

【问题讨论】:

标签: android video xamarin.ios xamarin.forms


【解决方案1】:

我必须将我的视频放在可绘制的、资产的或原始的......吗?

你需要把你的视频放在raw中,对于插件,我不打算在这里推荐任何第三方插件,你可以自己选择。我这里使用Custom Renderer创建自定义视图播放本地视频使用Android平台官方控件VideoView

例如:

在 PCL 中创建 MyVideoView

public class MyVideoView : View
{
}

在 Android 项目中创建它的渲染器:

[assembly: ExportRenderer(typeof(MyVideoView), typeof(MyVideoViewRenderer))]

namespace NameSpace.Droid
{
    public class MyVideoViewRenderer : ViewRenderer
    {
        private VideoView videoview;

        protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.View> e)
        {
            base.OnElementChanged(e);
            if (e?.NewElement == null || e.OldElement != null)
            {
                return;
            }

            if (Control == null)
            {
                videoview = new VideoView(Xamarin.Forms.Forms.Context);
                SetNativeControl(videoview);

                videoview.SetVideoPath("android.resource://" + Android.App.Application.Context.PackageName + "/" + Resource.Raw.one);
                videoview.Start();
            }
        }
    }
}

由于我在渲染器中直接给出了VideoView的本地路径,你可以像这样在xaml中简单地使用这个控件:

<local:MyVideoView HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" />

因为它是官方的VideoView,如果你想拥有它的传输控制器,有很多示例展示了如何将它与MediaController 一起使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-28
    • 2016-02-04
    • 1970-01-01
    • 2018-06-03
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多