0

私はボイス ストリーミングの初心者で、ボイス チャット アプリケーション
を構築しようとしています。

  • ソケットの ProtocolType として UPD を使用する必要があります
  • NAudio ストリーミングを使用する必要があります

送信メカニズム (疑似コード):

    private void but_Click(object sender, EventArgs e)
    {
        if (sourceList.SelectedItems.Count == 0) return;
        int deviceNumber = sourceList.SelectedItems[0].Index;

        NAudio.Wave.WaveIn sourceStream = new NAudio.Wave.WaveIn();
        sourceStream.DeviceNumber = deviceNumber;
        sourceStream.WaveFormat = new NAudio.Wave.WaveFormat(44100, NAudio.Wave.WaveIn.GetCapabilities(deviceNumber).Channels);

        sourceStream.DataAvailable += new EventHandler<NAudio.Wave.WaveInEventArgs>(sourceStream_DataAvailable);
        sourceStream.StartRecording();
    }

    private void sourceStream_DataAvailable(object sender, NAudio.Wave.WaveInEventArgs e)
    {
        if (sourceStream== null) return;

        send_UPD(e.Buffer, e.BytesRecorded);//sending data UPD
    }

送信は成功し、受信者はバイトの配列を復活させると思います

送信メカニズム (疑似コード):

        NAudio.Wave.DirectSoundOut waveOut = new NAudio.Wave.DirectSoundOut();
        NAudio.Wave.WaveInProvider waveIn = new NAudio.Wave.WaveInProvider(/*my recived array of byte*/);
        waveOut.Init(waveIn);
        waveOut.Play();

私の質問
は上記のとおりで、受信機のバイト配列で何ができますか(どのように再生できますか)???

4

1 に答える 1

1

レシーバーは を使用する必要がBufferedWaveProviderあります。これにより、到着したオーディオ データを再生するためにキューに入れることができます。

于 2012-09-19T12:55:54.230 に答える