我在Xamarin Forms上制作一个带有视频播放器的页面,为Xamarin.Android播放本地mp4。
所以,我创造了一个" raw"我的Xamarin.Droid中的文件夹(在Resources文件夹中)并将我的视频与AndroidResource一起用于编译器。
我使用this插件来显示我的视频,因为我不想拥有控制器,我想循环播放视频。
但是,它说:不能播放视频。
我认为是因为它没有找到视频......
我不知道如何解决它。
感谢您的帮助
答案 0 :(得分:1)
我必须将我的视频放在可绘制的,资产或原始的......?
您需要将视频置于原始状态,对于插件,我不打算在此建议任何第三方插件,您可以自行选择。我在这里使用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
一起使用它。