从 NAudio 访问 WPF MediaElement 声音流

Posted

技术标签:

【中文标题】从 NAudio 访问 WPF MediaElement 声音流【英文标题】:Access WPF MediaElement Sound Stream form NAudio 【发布时间】:2012-11-09 10:37:01 【问题描述】:

如果我的问题听起来很幼稚,我对使用 NAudio 很抱歉。

我的项目是使用 WPF MediaElement 控件播放视频文件,然后访问播放视频的音频流(使用 NAudio)来表示正在播放的视频的音轨(波形等)。

我研究了如何让 NAudio 访问 MediaElement 控件中视频文件的音轨,但找不到资源..

任何建议将不胜感激

【问题讨论】:

你尝试了什么?你能显示一些代码吗? 恐怕这不是 NAudio 的功能,也是 WPF 媒体元素在任何情况下都不允许的功能。您需要进入较低级别才能直接进入视频的音轨。可能使用 WASAPI 环回记录可能足以满足您的需求? 【参考方案1】:

如果您愿意尝试 NAudio 1.7 (available on NuGet) 的预览版,它现在可以使用 Media Foundation 从视频文件中读取音轨。使用MediaFoundationReader 类。以下是您将配乐保存到 WAV 文件的方法:

using (var reader = new MediaFoundationReader("mymovie.m4v"))

    WaveFileWriter.CreateWaveFile(reader, "soundtrack.wav");

显然,对于波形绘图,您不需要制作 WAV 文件。只需查看示例值即可获得波形渲染器的峰值。

请注意,Media Foundation 仅在 Windows Vista 及更高版本上受支持。

【讨论】:

以上是关于从 NAudio 访问 WPF MediaElement 声音流的主要内容,如果未能解决你的问题,请参考以下文章

在 WPF C# 中使用 NAudio 录制音频

WPF使用NAudio录音

使用 NAudio 在 WPF 上创建音频播放器。绑定不起作用

NAudio 获取音频样本

我可以同时从音频流缓冲区写入和播放(在 NAudio 中)吗?

错误的 .wav 格式录制音频 NAudio 库