如何在UWP应用程序上播放原始pcm音频字节

本文关键字:原始 播放 pcm 音频 字节 程序上 应用程序 UWP 应用 | 更新日期: 2023-09-27 18:01:04

我有一个通用Windows平台(UWP(应用程序,我想在其中播放我在旧的Window phone 8.1应用程序上录制的音频字节。

音频是具有原始PCM音频(单声道,16位,16kHz(的字节阵列。

在我的旧Windows phone 8.1应用程序上,我只需要使用3行代码。

SoundEffect sound = new SoundEffect(audioBytes, sampleRate, AudioChannels.Mono);
SoundEffectInstance soundInstance = sound.CreateInstance();
soundInstance.Play();

不幸的是,"音效"在UWP中消失了。

有没有一种简单的方法可以在C#UWP应用程序中做到这一点?

出于测试目的,音频样本(单声道,16位,16000Hz,litle endian(

附言:我看了Wasapi,但它都是用c++编写的,找不到一个通常在c#

如何在UWP应用程序上播放原始pcm音频字节

中工作的简单例子

除了媒体元素,您还可以尝试使用FrameInputNode的AudioGraph,下面是示例:https://github.com/Microsoft/Windows-universal-samples/blob/master/Samples/AudioCreation/cs/AudioCreation/Scenario3_FrameInputNode.xaml.cs但要小心,AudioGraph仍然存在漏洞,可能会泄漏。

在页面上添加MediaElement

<MediaElement x:Name="mediaElement"/>

并手动设置源

using System.IO;
using System.Runtime.InteropServices.WindowsRuntime;

var stream = audioBytes.AsBuffer().AsStream().AsRandomAccessStream();
mediaElement.SetSource(stream, "audio/x-wav");
mediaElement.Play();