Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin表单Webview不播放视频_Xamarin_Xamarin.forms - Fatal编程技术网

Xamarin表单Webview不播放视频

Xamarin表单Webview不播放视频,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我有一个用Xamarin表单Xaml声明的webview。无论我是在CodeBehind还是在Xaml中设置源代码,视频控件都可以很好地渲染,但当您单击播放图标时,它不会播放。我可以通过点击渲染的底部搜索栏前后跳跃。视频将向前跳过并冻结在一帧上,但在点击播放时仍无法播放。我将webview的源设置为一个html5视频标签,因为它是我能得到的最接近要渲染的视频。我应该提到,视频是使用Azure媒体服务格式化为流媒体的,所以这不应该是问题所在 <WebView IsVisible="{Bind

我有一个用Xamarin表单Xaml声明的webview。无论我是在CodeBehind还是在Xaml中设置源代码,视频控件都可以很好地渲染,但当您单击播放图标时,它不会播放。我可以通过点击渲染的底部搜索栏前后跳跃。视频将向前跳过并冻结在一帧上,但在点击播放时仍无法播放。我将webview的源设置为一个html5视频标签,因为它是我能得到的最接近要渲染的视频。我应该提到,视频是使用Azure媒体服务格式化为流媒体的,所以这不应该是问题所在

<WebView IsVisible="{Binding HasVideo}" Margin="10,0,0,0" BindingContextChanged="WebView_BindingContextChanged"  HorizontalOptions="CenterAndExpand"
     VerticalOptions="CenterAndExpand" HeightRequest="350"  />

private void WebView_BindingContextChanged(object sender, EventArgs e)
{
    var webView = ((WebView)sender);

    Post post = (Post)webView.BindingContext;
    if (post.HasVideo)
    {             
        var htmlSource = new HtmlWebViewSource();
        htmlSource.Html = @"<!DOCTYPE html>
                            <html>
                            <body>
                                <video  src='" + post.MainVideoURL + @"' controls width='320' height='240' preload='metadata'   >
                            </ body >
                            </html><style>
                            video {
                                object-fit: fill;
                            }
                            </style>";
        webView.Source = htmlSource;
        }          
    }

私有void WebView_BindingContextChanged(对象发送方,事件参数e)
{
var webView=((webView)发送方);
Post Post=(Post)webView.BindingContext;
如果(post.HasVideo)
{             
var htmlSource=新的HtmlWebViewSource();
htmlSource.Html=@”
录像带{
对象匹配:填充;
}
";
webView.Source=htmlSource;
}          
}

在已经安装的应用程序上,这也发生在我身上。用户报告了此问题

在Android上: 当您单击播放图标时,它不会播放。我可以通过点击底部搜索栏或点击视频上的左/右来前后跳跃,它显示不同的帧

在iOS上: 随着12.2的最新更新,视频停止工作。它们显示空白背景,不响应任何单击


我也使用视频标签

视频的
BuildAction
是否设置为
EmbeddedResource
?视频是指向流媒体端点的internet URL。谢谢,我明白了,你有没有试着像添加
那样添加它?你是说在html中把视频标签包装在一个iframe中?@PatrickGoode:希望有帮助@PatricGoode,Android通过清除应用程序的缓存来解决。谢谢,你说清除应用程序的缓存是什么意思app@PatricGoode例如我的意思是这样。这为我解决了Android的视频问题。打开手机的设置。;轻触存储标题以打开其设置页面;点击“其他应用”标题以查看已安装应用的列表。;找到要清除缓存的应用程序并点击其列表。;点击“清除缓存”按钮。清除应用缓存并不能解决问题,对我来说,它会推迟到下次。@AnaKochevska您找到iOS的解决方案了吗?