将 MixingSampleProvider 与常量传入 byteArray 一起使用

问题描述

我正在创建一个包含音频的聊天应用程序。因为您可以同时从多个用户获取音频/不创建缓冲区,所以您需要能够一次输出多个声音。目前,我正在使用多个 WaveOut 对象和 BufferedWaveProvider 来播放从 UDP 收到的音频我在后台随机点击(阅读它是由于对象突然停止而发生的)所以打开并且关闭 Waveout 对象并不是最好的:

private void ReceiveUdpMessage(IAsyncResult ar)
{
    try
    {

        byte[] bytesRead = UDPc.EndReceive(ar,ref ep);
        DirectSoundOut _waveOut = new DirectSoundOut();
        BufferedWaveProvider provider = new BufferedWaveProvider(new WaveFormat(44100,16,2));
        provider.discardOnBufferOverflow = true;
        provider.AddSamples(bytesRead,bytesRead.Length);
        _waveOut.Init(provider);

        _waveOut.Play();

        UDPc.BeginReceive(new AsyncCallback(ReceiveUdpMessage),null);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
}

我了解到您可以使用 MixingSampleProvider 一次播放多个声音,但会出现一些问题。

this tutorial 中,它展示了如何使用它,但它添加了很多我认为不需要的东西。最重要的是,它取自文件而不是字节数组。

我对 Naudio 还很陌生,但我真的不明白如何创建一个基本的 mixingSampleProvider 来接受字节数组并播放它。有人知道要创建那个吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)