如果我的问题听起来很幼稚,我对使用 NAudio 很抱歉。
我的项目是使用 WPF MediaElement 控件播放视频文件,然后访问播放视频的音频流(使用 NAudio)来表示正在播放的视频的音轨(波形等)。
我研究了如何让 NAudio 访问 MediaElement 控件中视频文件的音轨,但找不到资源..
任何建议将不胜感激
如果我的问题听起来很幼稚,我对使用 NAudio 很抱歉。
我的项目是使用 WPF MediaElement 控件播放视频文件,然后访问播放视频的音频流(使用 NAudio)来表示正在播放的视频的音轨(波形等)。
我研究了如何让 NAudio 访问 MediaElement 控件中视频文件的音轨,但找不到资源..
任何建议将不胜感激
如果您愿意尝试 NAudio 1.7 的预览版(可在 NuGet 上获得),它现在可以使用 Media Foundation 从视频文件中读取音轨。使用MediaFoundationReader
类。以下是将配乐保存到 WAV 文件的方法:
using (var reader = new MediaFoundationReader("mymovie.m4v"))
{
WaveFileWriter.CreateWaveFile(reader, "soundtrack.wav");
}
显然,对于波形绘图,您不需要制作 WAV 文件。只需查看样本值即可获得波形渲染器的峰值。
请注意,Media Foundation 仅在 Windows Vista 及更高版本上受支持。