如何将两个OGG文件合并到Android(4.0+)中?到目前为止,我在发布之前进行了大量搜索,但我没有找到任何有用的信息。我试图将两个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中。您为此推荐了什么解决方案? 问题?也许在服务器上加入文件(发送一些请求并回答get文件)?我更喜欢在我的应用程序中执行此操作,但如果这是一个问题,可能使用服务器或其他东西。
编辑:
MediaCodec或MediaMuxer可以帮忙吗?
答案 0 :(得分:0)
解决方案:
1)使用SequenceInputStream合并Ogg文件(如上所述)
2)使用FFMPEG Library for Android 将ogg转换为mp3
3)一切看起来都很好并且有效。但它有点慢: - )