您能否确认文件testvideo.mp4 是存储在内部存储器还是外部存储器中?从您的代码中,我猜您想从内部存储中获取视频,但内部存储中的文件无法共享,并且您看不到它。
https://docs.microsoft.com/en-us/xamarin/android/platform/files/#internal-vs-external-storage
因此,当使用基于 file:// 的 URL 时,我建议您可以将视频复制到 Assets 文件夹,并且 BuildAction 是 AndroidAsset。
然后像这样播放视频:
CrossMediaManager.Current.Play("file:///android_asset/minions.mp4");
我通过 Nuget 包安装 Plugin.MediaManager.Forms,然后在 Mainactivity.cs 中初始化:
CrossMediaManager.Current.Init(this);
MainPage.xaml:
<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");
}
更新
如果您想在 Xamarin.ios 中播放视频,请在 Resource 文件夹 中添加视频,并且 BuildAction 是 BundleResource
然后像这样播放视频:
CrossMediaManager.Current.PlayFromResource("minions.mp4");
完整代码:
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