Xamarin Forms(PCL) WebView加载YouTube视频自动播放失效问题咨询
问题解答
自动播放失效原因
Android和iOS系统对WebView的媒体播放有默认限制,仅URL加autoplay=1无法生效:
- Android端WebView默认禁止媒体自动播放,需要显式关闭「媒体播放需要用户手势」的配置
- iOS端WKWebView默认要求用户交互才能触发媒体播放,需要单独修改媒体播放的交互限制配置
自动播放实现方案
可以通过Xamarin.Forms自定义渲染器双端适配实现自动播放,具体实现步骤如下:
- 共享项目中创建自定义WebView类
public class AutoPlayWebView : WebView { }
- Android端自定义渲染器配置
[assembly: ExportRenderer(typeof(AutoPlayWebView), typeof(AutoPlayWebViewRenderer))] namespace 你的项目命名空间.Droid.Renderers { public class AutoPlayWebViewRenderer : WebViewRenderer { public AutoPlayWebViewRenderer(Context context) : base(context) { } protected override void OnElementChanged(ElementChangedEventArgs<WebView> e) { base.OnElementChanged(e); if (Control != null) { Control.Settings.MediaPlaybackRequiresUserGesture = false; } } } }
- iOS端自定义渲染器配置
[assembly: ExportRenderer(typeof(AutoPlayWebView), typeof(AutoPlayWebViewRenderer))] namespace 你的项目命名空间.iOS.Renderers { public class AutoPlayWebViewRenderer : WebViewRenderer { protected override void OnElementChanged(VisualElementChangedEventArgs e) { base.OnElementChanged(e); if (NativeView is WKWebView webView) { webView.Configuration.MediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypes.None; } } } }
配置完成后,将原有代码里的new WebView()替换为new AutoPlayWebView()即可生效。
rel=0仍显示相关推荐说明
YouTube官方2018年9月修改了嵌入播放器的参数规则,rel=0参数现在不再完全隐藏相关推荐,只会限制推荐内容为当前视频所属频道的内容,没有方案可以完全去除相关推荐展示,属于平台规则限制。
内容的提问来源于stack exchange,提问作者Faith
相关产品推荐
相关产品推荐

