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

.NET MAUI中如何播放存储在byte[]中的MP3音频

在.NET MAUI中播放byte[]中的MP3音频

方法一:使用原生MediaElement控件

这是.NET MAUI内置的媒体播放控件,无需额外依赖。

  1. 在XAML页面中添加MediaElement及控制按钮:
<ContentPage ...>
    <StackLayout>
        <Button Text="播放音频" Clicked="PlayAudio_Clicked" />
        <MediaElement x:Name="audioPlayer" AutoPlay="False" />
    </StackLayout>
</ContentPage>
  1. 在后台代码中处理字节数组并触发播放:
private async void PlayAudio_Clicked(object sender, EventArgs e)
{
    // 替换为你从数据库读取的MP3字节数组
    byte[] audioBytes = FetchAudioFromDatabase();
    
    using var audioStream = new MemoryStream(audioBytes);
    var mediaSource = MediaSource.FromStream(() => audioStream);
    
    audioPlayer.Source = mediaSource;
    await audioPlayer.PlayAsync();
}

// 模拟从数据库读取音频的方法
private byte[] FetchAudioFromDatabase()
{
    // 此处替换为你的实际数据库读取逻辑
    return new byte[0];
}

方法二:使用CommunityToolkit.Maui的AudioPlayer

如果需要更轻量的音频控制逻辑,可以借助MAUI社区工具包的音频播放器。

  1. 安装NuGet包:CommunityToolkit.Maui
  2. 在MauiProgram.cs中初始化工具包:
builder.UseMauiApp<App>()
       .UseMauiCommunityToolkit();
  1. 编写播放代码:
private async void PlayAudio_Clicked(object sender, EventArgs e)
{
    byte[] audioBytes = FetchAudioFromDatabase();
    
    var audioPlayer = AudioManager.Current.CreatePlayer();
    await audioPlayer.LoadAsync(new MemoryStream(audioBytes));
    audioPlayer.Play();
}

注意事项

  • Android平台:若涉及本地文件读取或后台播放,需在AndroidManifest.xml中添加对应权限,示例:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
  • iOS平台:如需后台播放,需在Info.plist中配置UIBackgroundModes为audio。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 13:11:13