728x90
안녕하세요! C#에서 소켓통신으로 받은 byte 데이터를 NAudio 라이브러리를 사용하여 실시간으로 스피커로 출력하는 코드를 만드는 방법에 대해 알려드리겠습니다.
먼저, 소켓통신으로 받은 byte 데이터를 큐에 담습니다. 그리고 큐에서 데이터를 읽어들여 NAudio 라이브러리를 사용하여 스피커로 출력하면 됩니다.
아래는 소켓통신으로 받은 byte 데이터를 NAudio 라이브러리를 사용하여 실시간으로 스피커로 출력하는 코드입니다.
using NAudio.Wave;
using System.Net.Sockets;
private WaveOutEvent waveOut;
private BufferedWaveProvider bufferedWaveProvider;
//별도 스레드에서 실행
public void StartPlaying()
{
waveOut = new WaveOutEvent();
waveOut.DeviceNumber = 0;
bufferedWaveProvider = new BufferedWaveProvider(new WaveFormat(44100, 1));
bufferedWaveProvider.BufferDuration = TimeSpan.FromSeconds(10);
waveOut.Init(bufferedWaveProvider);
waveOut.Play();
}
public void AddData(Socket socket)
{
byte[] buffer = new byte[1024];
int readBytes = socket.Receive(buffer);
//데이터 추가
bufferedWaveProvider.AddSamples(buffer, 0, readBytes);
}
위 코드에서는 WaveOutEvent 클래스를 사용하여 스피커로 오디오 데이터를 출력합니다.
출력할 데이터는 BufferedWaveProvider 클래스를 사용하여 큐에 담습니다.
그리고 큐에서 데이터를 읽어들여 스피커로 출력합니다.
위 코드에서는 큐의 크기가 10초로 설정되어 있습니다. 이 부분은 필요에 따라 수정하실 수 있습니다.
참고하시기 바랍니다!
'개발언어 > C#' 카테고리의 다른 글
[C#] 도구 상자 항목 ' ' 을(를) 로드하지 못했습니다. 해당 항목은 도구 상자에서 제거됩니다. / 유저 컨트롤 (0) | 2023.04.12 |
---|---|
[C#] 투명배경 RichTextBox (0) | 2023.04.11 |
[WinForm] 두 개의 Chart, 수학 함수 그래프 그리기 (0) | 2023.03.29 |
[C#] Chart 사용법 요약 (0) | 2023.03.27 |
[C#] 실시간 라인 차트(그래프) 만들기 3 (0) | 2023.03.27 |