gpt4 book ai didi

c# - 在 MemoryStream 中拆分 mp3 音频的正确方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 15:33:59 24 4
gpt4 key购买 nike

我有一个 MemoryStream,它从在线读取音频,然后将其保存到 FileStream。音频播放很好,但有一个问题,即剪辑的前 30-40 毫秒在每次拆分开始时都是死音和静音。这是有问题的,因为我需要将音频剪辑分成多个文件以便以后无缝播放。 mp3 数据中是否有特定的字节或十六进制指示 mp3 帧的开始/结束位置以尝试在正确的位置拆分它?这在代码中看起来像什么?

在这个保存在这里的简单 FileStream 中,您可以在我的实验中看到,即使我尝试在开始时剪掉那个死角,它仍然会产生死角 - 让我认为我正在 split 声音文件位置不正确,然后播放器无法读取该帧 - 但我该如何克服这个问题?

byte[] byteArray = ms.ToArray();
using (FileStream fs = new FileStream(destPath + filename + ".mp3", FileMode.Create))
{
fs.Write(byteArray, 0, byteArray.Length);
}

剪回以尝试摆脱开始时的死角只是为了测试:

byte[] oldArray = ms.ToArray();
byte[] newArray = new byte[oldArray.Length - 1000];
Array.Copy(oldArray, 1000, newArray, 0, newArray.Length);
using (FileStream fs = new FileStream(destPath + filename + ".mp3", FileMode.Create))
{
fs.Write(newArray, 0, newArray.Length);
}

enter image description here

检查正在保存的 mp3 的字节数组,当我将其转换为文本时,即使在那个死空间中也有数据被保存,但由于某种原因它只是不播放。正如我所说,我猜这与文件在声音帧或其他东西中途被错误分割有关?对不起,如果我使用了不正确的术语。

enter image description here

最佳答案

试试看这里: NAudio to split mp3 file .NAudio 是一个完整的库,可能适合你......

关于c# - 在 MemoryStream 中拆分 mp3 音频的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32555841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com