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

时间:2016-08-05 13:39:58

标签: c# uwp wasapi xaudio2

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

音频是带有原始PCM音频的字节数组(单声道,16位,16kHz)。

在我的旧Windows手机8.1应用程序上,我可以使用3行代码。

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

不幸的是,'SoundEffect'在UWP中消失了。

在C#UWP应用程序中有一种简单的方法吗?

出于测试目的,audio sample(单声道,16位,16000Hz,litle-endian)

PS:我看过Wasapi,但它全部用c ++编写,找不到一个通常在c#中工作的人的简单例子。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

在您的信息页上添加def update if @user.update(user_params) redirect_to @user else flash.now[:alert] = "Something went wrong. Please try again." render :edit end end private def check_authorization unless current_user.id == params[:id].to_i redirect_to root_url end end def set_user @user = User.find(params[:id]) end def user_params params.require(:user).permit(:username, :avatar) end end

MediaElement

手动设置源

<MediaElement x:Name="mediaElement"/>