Angular 转换为MP3和流式传输的PCM音频数据每秒都会打嗝
我正在尝试使用TCP客户端(IPEndPoint-网络流)传输音频 使用的平台:Angular 转换为MP3和流式传输的PCM音频数据每秒都会打嗝,angular,tcpclient,audio-streaming,naudio,networkstream,Angular,Tcpclient,Audio Streaming,Naudio,Networkstream,我正在尝试使用TCP客户端(IPEndPoint-网络流)传输音频 使用的平台: using (var outStream = new MemoryStream()) { using (var ms = new MemoryStream(bytes)) { using (var reader = new WaveFileReader(m
using (var outStream = new MemoryStream())
{
using (var ms = new MemoryStream(bytes))
{
using (var reader = new WaveFileReader(ms)) //wav byte array
{
using (var writer = new LameMP3FileWriter(outStream, reader.WaveFormat, 128))
{
writer.MinProgressTime = 100;
reader.CopyTo(writer);
reader.Position = 0;
reader.Flush();
}
outStream.Position = 0;
return outStream.ToArray();
}
}
}
NAudio.Wave.WaveFormat waveFormat = new NAudio.Wave.WaveFormat(8000, 16, 1);
MemoryStream wavStream = new MemoryStream();
WaveFileWriter wr = new WaveFileWriter(wavStream, waveFormat);//(wavStream, waveFormat);
wr.Write(byteArray, 0,byteArray.Length);
wr.Flush();
wavStream.Position = 0;
- 对于UI–角度5
- 用于流媒体–webAPI
using (var outStream = new MemoryStream())
{
using (var ms = new MemoryStream(bytes))
{
using (var reader = new WaveFileReader(ms)) //wav byte array
{
using (var writer = new LameMP3FileWriter(outStream, reader.WaveFormat, 128))
{
writer.MinProgressTime = 100;
reader.CopyTo(writer);
reader.Position = 0;
reader.Flush();
}
outStream.Position = 0;
return outStream.ToArray();
}
}
}
NAudio.Wave.WaveFormat waveFormat = new NAudio.Wave.WaveFormat(8000, 16, 1);
MemoryStream wavStream = new MemoryStream();
WaveFileWriter wr = new WaveFileWriter(wavStream, waveFormat);//(wavStream, waveFormat);
wr.Write(byteArray, 0,byteArray.Length);
wr.Flush();
wavStream.Position = 0;
当LAMP3FileWriter尝试以波形格式读取字节时,它抛出错误“非波形文件-无RIFF头”,这意味着接收数据没有wav头。因此决定使用NAudio添加wav标头
代码:
using (var outStream = new MemoryStream())
{
using (var ms = new MemoryStream(bytes))
{
using (var reader = new WaveFileReader(ms)) //wav byte array
{
using (var writer = new LameMP3FileWriter(outStream, reader.WaveFormat, 128))
{
writer.MinProgressTime = 100;
reader.CopyTo(writer);
reader.Position = 0;
reader.Flush();
}
outStream.Position = 0;
return outStream.ToArray();
}
}
}
NAudio.Wave.WaveFormat waveFormat = new NAudio.Wave.WaveFormat(8000, 16, 1);
MemoryStream wavStream = new MemoryStream();
WaveFileWriter wr = new WaveFileWriter(wavStream, waveFormat);//(wavStream, waveFormat);
wr.Write(byteArray, 0,byteArray.Length);
wr.Flush();
wavStream.Position = 0;
然后使用上述代码将wav数据转换为MP3
现在,音频开始播放。但它每一秒钟都会产生一些打嗝声(间隙)。
请提供一些解决方案,以避免打嗝声并持续播放