2

我有一个通用 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 中没有“SoundEffect”。

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

用于测试目的的音频样本(单声道、16 位、16000Hz、小端)

PS:我查看了 Wasapi,但它全部使用 c++,并且找不到通常在 c# 中工作的人的简单示例

4

2 回答 2

1

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

于 2016-08-09T08:41:43.357 回答
0

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();
于 2016-08-06T08:26:18.213 回答