【问题标题】:Android: How merge(join) two OGG music files to one?Android:如何将两个OGG音乐文件合并(加入)一个?
【发布时间】: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


    【解决方案1】:

    解决方案:

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

    2) 使用FFMPEG Library for Android 你将ogg转为mp3

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

    【讨论】:

      猜你喜欢
      • 2015-06-22
      • 2011-10-07
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多