Я работаю с NAudio, чтобы отправлять аудиофайлы .wav, если быть точным, с одного компьютера на другой.
Я попытался отправить сообщение по сетевому потоку, но у меня нет возможности проверить, было ли сообщение отправлено правильно или нет, потому что до сих пор у меня проблемы с получением кода.
Вот код отправки.
public void StartConnection()
{
_connection = new TcpClient("localhost",1111);
_stream = _connection.GetStream();
SendFile(_stream,_waveStream);
}
public void SendFile(NetworkStream StreamToWrite,WaveStream StreamToSend)
{
WaveFileWriter write = new WaveFileWriter(StreamToWrite,StreamToSend.WaveFormat);
byte[] decoded = FromStreamToByte(StreamToSend);
write.Write(decoded,0,decoded.Length);
write.Flush();
}
а вот код получения
public void ListenConnection()
{
_listener = new TcpListener(IPAddress.Any,1111);
_listener.Start();
TcpClient receiver = _listener.AcceptTcpClient();
_stream = receiver.GetStream();
}
public void ReadFile(NetworkStream stream)
{
WaveFileReader read = new WaveFileReader(stream);
}
Теперь у меня возникли проблемы с тем, где продолжить получение кода, потому что, если я вызываю метод read
для read
, он запрашивает массив байтов, смещение и длину. Но почему он запрашивает массив, я не понимаю, ведь он просто получает данные.
Любые советы о том, как мне действовать дальше с методом ReadFile
.
ОБНОВИТЬ---
Во время отладки я обнаружил, что NetworkStream, который передавался в SendFile для использования в WaveFileWriter, не имеет определенной длины, поэтому он дает Stream Does not Support Seek Operations
. Однако я не понимаю, почему он выдает эту ошибку, потому что его прототип говорит, что может принимать любой поток.