gpt4 book ai didi

Android:如何将两个OGG音乐文件合并(加入)一个?

转载 作者:行者123 更新时间:2023-12-02 23:48:47 26 4
gpt4 key购买 nike

如何在 Android (4.0+) 中将两个 OGG 文件合并为一个?到目前为止,我在这里发布之前进行了很多搜索,但我没有发现任何有用的信息。我尝试将两个 OGG 文件与以下代码合并:

        File newFile = new File(Environment.getExternalStorageDirectory(), "test.ogg");

Vector<InputStream> inputStreams = new Vector<InputStream>();
for (String path : Globals.mCurrentProject.getSamples()) {

inputStreams.add(new FileInputStream(path));
}

Enumeration<InputStream> enu = inputStreams.elements();
SequenceInputStream sis = new SequenceInputStream(enu);

FileOutputStream fos = new FileOutputStream(newFile);

byte[] buf = new byte[8 * 1024]; // or 4 * 1024

while (true) {
int r = sis.read(buf);
if (r == -1) {
break;
}
fos.write(buf, 0, r);
}

sis.close();
fos.close();

但这不是理想的代码。此示例合并文件,但未设置正确的轨道持续时间,并且歌曲播放等存在问题(它应该设置歌曲元数据:持续时间,...)

是否有可能以某种方式(以简单的方式)在 Android 中加入两个(或更多)OGG 文件?

在 Java 中是 音频输入流 但它不在 Android 中。您为此推荐什么解决方案
问题?也许加入服务器上的文件(发送一些请求并在回答中获取文件)?我更喜欢在我的应用程序中执行此操作,但如果出现问题,可能使用服务器或其他东西。

编辑:

MediaCodec 或 MediaMuxer 可以帮忙吗?

最佳答案

解决方案:

1) 使用 SequenceInputStream 合并 Ogg 文件(如上)

2) 使用FFMPEG Library for Android 你把 ogg 转换成 mp3

3) 一切看起来都很好并且工作正常。但它有点慢:-)

关于Android:如何将两个OGG音乐文件合并(加入)一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27686529/

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