我有一个通用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#
除了媒体元素,您还可以尝试使用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();