我正在尝试将音频字节流式传输到naudio waveout流中,但它不起作用。这是伪代码:
byte[] by = new byte[2560] //audio packet sizes
int counter=0;
while (true) { //keep receiving bytes from incoming TCP socket
int bytesAvailable = await stream.ReadAsync(by, 0, 2560); //read incoming bytes
if(counter==0) {
using (var MemoryStream = new MemoryStream(by)) {
var waveOut = new WaveOut();
var waveFormat = new WaveFormat(16000, 16, 2); // wave format
var rawSource = new RawSourceWaveStream(MemoryStream, waveFormat);
waveOut.Init(rawSource);
waveOut.Play();
counter++;
}
}
..但我没有听到任何声音。我猜它只是读取一个数据包并停止,但我不知道。
任何人都知道错误/如何解决?我知道字节是进来的,因为我打印出最后一个字节,所以它与网络接收无关。
答案 0 :(得分:0)
为此使用BufferedWaveProvider
会更好。只需创建一个从WaveOut
播放的BufferedWaveProvider
设备,并将接收到的数据的字节数组添加到BufferedWaveProvider
,因为它通过网络到达。
答案 1 :(得分:0)
对于Ortund:
// JSON User Form
{ fields: [
{
name: "Full Name",
type: "text",
requiered: true
....
}, {
name: "Sex",
type: "select",
required: true
options: ["Male", "Female"]
....
}
]}