naudio - 如何重新采样波形文件并创建流或字节数组而不是文件?
问题描述
我见过很多关于重新采样文件和创建新文件的例子。
int outRate = 16000;
var inFile = @"test.wav"; // 8khz file
var outFile = @"test resampled.wav";
using (var reader = new WaveFileReader(inFile))
{
var outFormat = new WaveFormat(outRate, reader.WaveFormat.Channels);
using (var resampler = new MediaFoundationResampler(reader, outFormat))
{
WaveFileWriter.CreateWaveFile(outFile, resampler);
}
}
我想要做的是创建一个重新采样的流或字节数组。我曾尝试调用 WaveFileWriter.WriteWavFileToStream(memoryStream, resampler) 而不是 CreateWaveFile,但我最终得到了一个包含 RIFF 标头的流,我不确定此时该做什么。
解决方案
您可以只调用Read
重采样器来读取缓冲区重采样字节。我通常建议一次阅读大约 1 秒的音频,并继续阅读直到Read
返回 0
推荐阅读
- flutter - 在 Flutter 的垂直轮播中刷卡
- python - 按列值拆分熊猫数据框
- java - Oracle + Java,巨大的json卸载到文件
- google-app-engine - 在 Google App Engine 上发送“内部”http 请求
- spring-boot - 从 Azure Pipeline 将 Spring Boot Gradle 应用程序部署到 Azure 应用服务
- linux - 从 pentaho 7.1 导入 pentaho 9.0 后无法管理报告
- azure - 是否可以从 cosmos db azure 中删除记录
- c# - 从 Web 请求响应中解析 json
- python - 在python中计算标准输入的平均值
- php - Laravel Jetstream - 是否需要 Sanctum 来保护网络路由?