xamarin - iOS 项目中不播放视频
问题描述
我在 Xamarin.Forms 应用程序中使用了 Plugin.MediaManager。它在 Android 项目中完美运行,但在 iOS 项目中却不行。
我已经添加了
VideoViewRenderer.Init();
在 AppDelegate 中,这是视图中的代码:
async void PlayStop_Clicked(object sender, System.EventArgs e)
{
if (this.BtnPlayStop.Text == "Start Video")
{
string video = Path.Combine(_videoPath, this.viewModel.Item.Video);
if (File.Exists(video))
{
await CrossMediaManager.Current.Play(video, MediaFileType.Video);
this.BtnPlayStop.Text = "Stop Video";
}
}
else
{
await CrossMediaManager.Current.Stop();
this.BtnPlayStop.Text = "Start Video";
}
}
代码输入第一个 if,因为按钮将其文本更改为“停止视频”但没有视频出现。该视频是本地 mp4 文件。
正如我所说,这在 Android 中非常有效。
怎么了?
谢谢
海梅
解决方案
我已经用这个替换了播放或停止视频的方法:
async void PlayStop_Clicked(object sender, System.EventArgs e)
{
if (this.BtnPlayStop.Text == "Iniciar Video")
{
string video = Path.Combine(_videoPath, this.viewModel.Item.Video);
if (File.Exists(video))
{
Device.BeginInvokeOnMainThread(() =>
{
_ = CrossMediaManager.Current.Play("file://" + video, MediaFileType.Video);
});
this.BtnPlayStop.Text = "Detener Video";
}
}
else
{
await CrossMediaManager.Current.Stop();
this.BtnPlayStop.Text = "Iniciar Video";
}
}
加载本地媒体文件时,“file://”部分很重要。
使用这种方法,它适用于 Android 和 iOS。
问候詹姆
问候詹姆
推荐阅读
- xslt - 递归调用函数在 XSLT 中给出错误
- docker - 如何在没有端口问题的情况下多次运行 docker-compose?
- reactjs - 哪些 React Hooks 可以匿名定义?
- python - 如何在 django 中编写子查询
- javascript - 为什么 react 不触发组件更新?
- android - 我的 react-native 应用程序未启动(启动 2 秒并关闭)
- c# - 我应该如何在可以处理表单提交的 .net Core Razor 页面应用程序上实现可重用组件?
- python - Python - 如何修复 CWE-117:日志的不正确输出中和
- c# - 请给出派生自 ScrollableControl 并实现 IContainerControl 的类的基本示例
- fortran - 将派生类型作为参数的函数作为 Fortran 中的参数传递