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

C# 如何在UWP应用程序上播放原始pcm音频字节?,c#,uwp,wasapi,xaudio2,C#,Uwp,Wasapi,Xaudio2,我有一个通用Windows平台(UWP)应用程序,我想播放我在旧的Windows phone 8.1应用程序上录制的音频字节 音频是包含原始PCM音频(单声道、16位、16kHz)的字节数组 在我以前的Windows phone 8.1应用程序中,我可以使用3行代码来实现这一点 SoundEffect sound = new SoundEffect(audioBytes, sampleRate, AudioChannels.Mono); SoundEffectInstance soundInst

我有一个通用Windows平台(UWP)应用程序,我想播放我在旧的Windows 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)


PS:我查看了WASAPI,但它全部都是C++,不能为通常在C<< /p> 页上添加<代码> MyAtEngult<代码>的人找到一个简单的例子。

<MediaElement x:Name="mediaElement"/>

除了媒体元素外,您还可以使用FrameInputNode尝试AudioGraph,以下是示例:
但要小心,音频记录仪仍然有缺陷,可能会泄漏。

我可以从哪里获得
pcm音频字节
?它是好的示例吗?@AndriiKrupka我添加了一个“音频示例”音频文件,将该文件作为代码中的字节读取,您将看到我的场景。PCM audio是从麦克风、wav是格式化音频文件(因此不再是原始文件)中输入的原始音频。很可能可以使用WASAPI、XAudio和/或AudioGraph完成。但是我可以找到一个例子,我可以播放16000hz/16比特的字节或原始单声道音频作为输入,但它不起作用,这个解决方案可能用于.wav文件。你用我添加的“音频样本”测试了吗?谢谢你的样本,我会尽快看的。Buggy和泄漏并不重要,因为它只适用于非生产应用程序。
using System.IO;
using System.Runtime.InteropServices.WindowsRuntime;


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