【问题标题】:mix microphone with mp3 file and output that to specific device将麦克风与 mp3 文件混合并将其输出到特定设备
【发布时间】:2015-10-14 07:56:22
【问题描述】:

我希望能够将麦克风输出与 mp3 文件混合,并将其输出到特定设备。

我可以在特定设备上播放 mp3 文件:

Mp3FileReader reader = new Mp3FileReader("C:\\Users\\Victor\\Music\\Musik\\Attack.mp3");
var waveOut = new WaveOut();// or WaveOutEvent()
waveOut.DeviceNumber = deviceId; //deviceId, like 0 or 1
waveOut.Init(reader);
waveOut.Play();

所以我希望能够做的基本上是始终将麦克风输出发送到特定输出,并在按下按钮时用 mp3 文件的声音将该输出覆盖到该特定设备。 现在我正在尝试用 naudio 做些什么,如果是这样,我将如何去做?

谢谢!

【问题讨论】:

  • 您需要查看MixingWaveProvider32,它允许将多个通道混合到一个输出中。然后将WaveIn.StartRecording() 与您的 Mp3FileReader 的流混合。我希望这能让你朝着正确的方向前进!
  • 感谢您的评论 - 不幸的是,我不确定如何获得适合 MixingWaveProvider32 构造函数的对象,该构造函数需要具有实现 IEnumerable 的类型的对象。我如何从 mp3filereader 中获取它和麦克风输入?

标签: c# naudio


【解决方案1】:

基本策略是将麦克风接收到的音频放入BufferedWaveProvider。然后使用ToSampleProvider 扩展方法将其转换为ISampleProvider。现在您可以将其传递给MixingSampleProvider。然后从MixingSampleProvider 播放。现在您可以随时通过在MixingSampleProvider 中添加输入来混入其他音频

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多