从 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 声音流的主要内容,如果未能解决你的问题,请参考以下文章
使用 NAudio 在 WPF 上创建音频播放器。绑定不起作用