推荐使用 MediaElement(适合带 UI 的音视频播放)或 Plugin.Maui.Audio(专注轻量音频,如提示音、BGM);前者基于原生播放器、支持丰富控件与格式,后者启动快、支持后台播放与低延迟场景。

在 .NET MAUI 中播放音频和视频,目前主流且推荐的方式是使用 MediaElement(来自 Community Toolkit)或 Plugin.Maui.Audio 插件,两者适用场景略有不同:MediaElement 更适合音视频混合、带 UI 控件(如进度条、音量滑块)、需跨平台一致视觉体验的场景;Plugin.Maui.Audio 则更轻量、专注音频(尤其短提示音、背景音乐),启动快、资源占用低,且支持后台播放等高级能力。
用 MediaElement 播放音视频(推荐用于带界面的播放器)
MediaElement 是 MAUI Community Toolkit 提供的原生风格控件,基于各平台原生播放器(Android 用 ExoPlayer,iOS 用 AVPlayer,Windows 用 WinUI MediaPlayerElement),支持 MP4、MP3、HLS 流等常见格式。
- 安装 NuGet 包:
CommunityToolkit.Maui和CommunityToolkit.Maui.MediaElement - 在 MauiProgram.cs 中启用:
.UseMauiCommunityToolkitMediaElement()(注意放在.UseMauiApp之后)() - XAML 中直接使用(支持嵌入资源、本地文件、网络 URL):
- 绑定常用属性(如音量、位置、状态)需配合 MVVM 或手动刷新 UI,例如:
Volume="{Binding Volume}"、Position="{Binding Position}"、CurrentState可读取播放状态(Playing、Paused、Stopped 等)
用 Plugin.Maui.Audio 播放纯音频(推荐用于提示音、BGM、低延迟场景)
这个插件专为音频优化,不依赖 UI 控件,更适合无界面触发、频繁启停、后台持续播放等需求,比如通知音效、游戏音效、语音播报。
- 安装 NuGet:
Plugin.Maui.Audio - 在 MauiProgram.cs 初始化:
.UseMauiAudio() - C# 中播放(支持 app 包内资源、沙盒文件、流):
var player = _audioManager.CreatePlayer(await FileSystem.OpenAppPackageFileAsync("beep.mp3"));player.Play(); - 支持音量调节、循环播放、暂停/恢复、完成事件监听,且自动管理生命周期,避免内存泄漏
关键注意事项和常见问题
实际开发中容易踩坑的点:
本文档主要讲述的是android rtsp流媒体播放介绍;实时流协议(RTSP)是应用级协议,控制实时数据的发送。RTSP提供了一个可扩展框架,使实时数据,如音频与视频,的受控、点播成为可能。数据源包括现场数据与存储在剪辑中数据。该协议目的在于控制多个数据发送连接,为选择发送通道,如UDP、组播UDP与TCP,提供途径,并为选择基于RTP上发送机制提供方法。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
-
资源路径写法:嵌入式资源要用
embed://xxx.mp3,不是res://或相对路径;确保资源 Build Action 设为MauiAsset -
Android 权限:播放网络视频需在
AndroidManifest.xml添加INTERNET权限;若用本地文件还需READ_EXTERNAL_STORAGE(API 33+ 需适配分区存储) -
自动播放限制:iOS 和部分 Android 浏览器策略禁止静音外自动播放,建议首次交互(如按钮点击)后再调用
Play() -
状态监听不可靠?:MediaElement 的
CurrentState属性不是实时通知,需订阅StateChanged事件或定时轮询(推荐事件方式)
简单选择建议
做音乐播放器或带控制栏的视频页 → 选 MediaElement;
仅需播放提示音、语音反馈、后台 BGM → 选 Plugin.Maui.Audio;
需要同时兼顾二者?可共存 —— 用 MediaElement 做主视频,用 Audio 插件播 UI 音效,互不干扰。
基本上就这些。两种方案都已稳定用于生产环境,文档和示例丰富,上手不难但细节容易忽略。






