2012-04-05 122 views
2

在Windows 8中可以流式处理或播放原始未压缩PCM音频数据吗?我不想播放文件,而是推送自己的音频样本(例如生成正弦波)。我正在运行Win8消费者预览。我知道NAudio可以在Win7和Windows的早期版本中执行此操作。我曾尝试在Visual Studio 11项目中引用NAudio,但NAudio对System.Windows.Forms.dll有依赖关系,但Win8消费者预览中并不存在(据我所知)。有没有另一种方法可以在Win8预览版中完成此操作?我更喜欢使用托管代码或JavaScript的解决方案。在Win8中播放原始PCM波形音频(用户预览)

+0

我能找到System.Windows.Forms.dll程序集,但是当我添加引用时Visual Studio 11崩溃。 – kindohm 2012-04-05 17:26:03

+0

我也看到MediaElement上有一个SetSource方法。也许这可以工作?它接受一个I​​RandomAccessStream ...对这个流应该包含什么想法会有所帮助。 – kindohm 2012-04-05 18:59:09

回答

2

你没有指定你的chice的语言,所以我将假定C#。对于C#我可以考虑几种可能的选择:

  1. SharpDX + XAudio2。这也适用于C++,而且不需要SharpDX
  2. 在Silverlight中,您可以使用MediaStreamSource - Playing back Wave files in Silverlight。我在WinRT中没有看到它,但可能存在类似的替代方案。
  3. 使用XAudio2在C++中编写winrt库。这样你就不需要使用SharpDX,你可以从C#或JavaScript应用程序中调用它。
+0

托管代码解决方案是最好的(我修改了我的问题以更具体)。 SharpDX看起来很有前途。我非常熟悉在Silverlight中使用MediaStreamSource播放未压缩的WAV数据,但是基于缓冲区的方法对于我的需求有太多的延迟。我会给SharpDX一枪。 – kindohm 2012-04-05 20:29:54