You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于.NET Standard的Xamarin.Forms应用如何播放网络视频?

适配.NET Standard的Xamarin.Forms远程视频播放方案

嘿,针对你用.NET Standard开发Xamarin.Forms应用时遇到的远程视频播放问题,我整理了几个亲测有效的方案,完美避开那些基于.NET Framework的PCL限制:

方案一:原生平台渲染器(性能最优推荐)

Xamarin.Forms本身没内置视频播放控件,咱们可以针对iOS和Android分别封装原生播放器,然后在.NET Standard共享项目里统一调用,兼容性拉满:

Android端(用ExoPlayer)

  1. 给Android项目装ExoPlayer的NuGet包(选支持.NET Standard的版本就行)
  2. 写个自定义渲染器,继承ViewRenderer<YourCustomVideoView, SimpleExoPlayerView>
  3. 在渲染器里初始化播放器并加载远程URL:
var uri = Android.Net.Uri.Parse(YourVideoUrl);
var mediaItem = MediaItem.FromUri(uri);
_player.SetMediaItem(mediaItem);
_player.Prepare();
_player.Play();

iOS端(用AVPlayer)

  1. iOS项目里写自定义渲染器,继承ViewRenderer<YourCustomVideoView, AVPlayerViewController>
  2. 初始化AVPlayer加载视频:
var playerItem = AVPlayerItem.FromUrl(new NSUrl(YourVideoUrl));
var player = new AVPlayer(playerItem);
Controller.Player = player;
player.Play();

.NET Standard共享项目

创建一个自定义VideoPlayerView控件,定义VideoUrl绑定属性,这样在XAML里就能直接用:

public class VideoPlayerView : View
{
    public static readonly BindableProperty VideoUrlProperty =
        BindableProperty.Create(nameof(VideoUrl), typeof(string), typeof(VideoPlayerView));

    public string VideoUrl
    {
        get => (string)GetValue(VideoUrlProperty);
        set => SetValue(VideoUrlProperty, value);
    }
}

方案二:WebView嵌入HTML5播放(最简单跨平台)

如果你的视频是MP4这类HTML5支持的格式,直接用WebView加载个极简HTML页面就行,零原生依赖,完美适配.NET Standard:

XAML里加个WebView:

<WebView x:Name="VideoWebView" HeightRequest="300" />

后台代码加载播放页面:

var html = $@"
<html>
    <body style='margin:0;padding:0;'>
        <video width='100%' height='100%' controls autoplay>
            <source src='{YourVideoUrl}' type='video/mp4'>
        </video>
    </body>
</html>";
VideoWebView.Source = new HtmlWebViewSource { Html = html };

这个方案唯一的小缺点是没法精细控制播放逻辑(比如自定义进度条、播放回调),但满足基础播放需求完全够用。

方案三:适配.NET Standard的跨平台插件

要是你不想自己写原生代码,试试这两个插件:

  • 先重新安装MediaManager的最新版本,现在它已经支持.NET Standard 2.0+了,之前的兼容性问题应该已经修复,调用也简单:
await CrossMediaManager.Current.Play(YourVideoUrl);
  • 要是这个还是不行,换Xamarin.Plugins.VideoPlayer,专门针对.NET Standard开发的,API简洁好用。

内容的提问来源于stack exchange,提问作者neqopa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:00:33