首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用C#合并/合并MP3文件?

如何使用C#合并/合并MP3文件?
EN

Stack Overflow用户
提问于 2009-07-21 18:28:14
回答 4查看 11.9K关注 0票数 3

我有一个不同单词/短语的库,目前为了构建句子,我将这些短语的组合添加到播放列表中来组成句子。不幸的是,如果用户正在运行CPU密集型应用程序(我的大多数用户都是),在句子中间(在短语之间)可能会有几秒钟的延迟。

为了解决这个问题,我正在考虑一种方法,它可以动态地将正确的MP3文件组合合并到适当的短语中,将其保存在%temp%目录中,然后播放这1个MP3文件,这样就可以克服我遇到的间隙问题。

在C#中执行此操作的最简单方法是什么?有什么简单的方法可以做到这一点吗?这些文件相当小,每个文件长3-4秒,一个句子可以由3-20个短语组成。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-07-21 18:57:12

MP3文件由“帧”组成,每个帧代表一小段(我认为大约25ms)的音频。

所以,是的,你可以连接它们而不会有任何问题。

票数 0
EN

Stack Overflow用户

发布于 2010-11-09 02:55:41

下面是如何使用NAudio连接MP3文件

代码语言:javascript
运行
复制
public static void Combine(string[] inputFiles, Stream output)
{
    foreach (string file in inputFiles)
    {
        Mp3FileReader reader = new Mp3FileReader(file);
        if ((output.Position == 0) && (reader.Id3v2Tag != null))
        {
            output.Write(reader.Id3v2Tag.RawData, 0, reader.Id3v2Tag.RawData.Length);
        }
        Mp3Frame frame;
        while ((frame = reader.ReadNextFrame()) != null)
        {
            output.Write(frame.RawData, 0, frame.RawData.Length);
        }
    }
}

有关更多信息,请参阅here

票数 6
EN

Stack Overflow用户

发布于 2009-07-21 18:32:19

由于MP3s是一种压缩的音频源,我想你不能只是将它们连接成一个单独的文件,而不是先将它们解码成它将播放的波形。这可能是相当密集的。也许您可以在回放短语时使用临界区作弊,这样在短语完成之前CPU就不会被窃取。这并不一定要和其他帖子玩得很好,但如果你的短语很短,可能会起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1160888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档