【发布时间】:2015-02-25 12:01:46
【问题描述】:
如何在 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 中是 audioInputStream,但在 Android 中不是。您为此推荐什么解决方案 问题?也许加入服务器上的文件(发送一些请求并在回答中获取文件)?我更喜欢在我的应用程序中执行此操作,但如果有问题,可以使用服务器或其他方式。
编辑:
MediaCodec 或 MediaMuxer 可以提供帮助吗?
【问题讨论】:
标签: android audio merge inputstream ogg