MAUI怎么播放音频和视频 MAUI多媒体播放方法

来源:这里教程网 时间:2026-02-21 17:40:31 作者:

在 .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<app>()</app>
之后)
XAML 中直接使用(支持嵌入资源、本地文件、网络 URL):
<mediaelement source="embed://song.mp3" shouldautoplay="False"></mediaelement>

<mediaelement source="https://example.com/video.mp4" aspect="AspectFill"></mediaelement>
绑定常用属性(如音量、位置、状态)需配合 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();
支持音量调节、循环播放、暂停/恢复、完成事件监听,且自动管理生命周期,避免内存泄漏

关键注意事项和常见问题

实际开发中容易踩坑的点:

资源路径写法:嵌入式资源要用
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 音效,互不干扰。

基本上就这些。两种方案都已稳定用于生产环境,文档和示例丰富,上手不难但细节容易忽略。

相关推荐

热文推荐