2 hao8293853 hao8293853 于 2016.03.11 12:49 提问

Android录音文件和下载的音频合成

使用的是AudioRecord进行录音,然后想把录音之后的音频跟下载过来的音频合成一个文件,类似加一个音频头或者尾。
试了直接用流进行简单的拼接,但是不能播放,有没有大神可以指导一下的,快急死了。。

5个回答

crazy1235
crazy1235   Ds   Rxr 2016.03.11 14:13
已采纳
hao8293853
hao8293853 还是没说怎么用啊。。
接近 2 年之前 回复
wen_wxpk
wen_wxpk   2016.03.11 14:33

你IO流是怎么处理的,把代码贴出来,有试过把两端音频都放进一个byte[]里吗

hao8293853
hao8293853 贴楼下了 然后这样拼接起来以后不能播放
接近 2 年之前 回复
qq_34251081
qq_34251081   2016.03.11 12:58

录音时有来源选项,可同时选择多种来源:麦克,mono mix,stereo mix,CD,电话输入等。

最直观的解决办法是打开两个MP3同时播放(可以把音量设小点),同时进行录音生成“合成的”MP3。合成的MP3的音量如果小,也可以编程给它调大点。

当然,如果能有专业的现成组件也不错。但是那样的话,恐怕用户会选择直接安装这种应用,自己进行用途更多的混音了,也就无需你做这个功能了。

hao8293853
hao8293853 现在就是想要开发一个安卓应用你,里面需要用到音频合成的这个功能。。。
接近 2 年之前 回复
hao8293853
hao8293853   2016.03.11 15:08

File original= new File("/mnt/sdcard/A.mp3");
File temp=new File("/mnt/sdcard/B.mp3");
Log.i("...............",""+path);

    try {
        File outFile= new File("/mnt/sdcard/C.mp3 ");

        DataOutputStream out=new DataOutputStream(new BufferedOutputStream(new FileOutputStream(outFile)));





    //  FileOutputStream out=new FileOutputStream(outFile);

        //OutputStream out = new FileOutputStream(original,true);


        int m,n;
        m=(int) temp.length();
        n=(int) original.length();

         byte[] buf1 = new byte[m];
         byte[] buf2 = new byte[n];

         byte[] outBytes = new byte[m+n];


         DataInputStream dis1=new DataInputStream(  new BufferedInputStream(new FileInputStream(original)));
         DataInputStream dis2=new DataInputStream(  new BufferedInputStream(new FileInputStream(temp)));



         dis1.read(buf1, 0, m);
         dis1.close();

         dis2.readFully(buf2, 0, n);
         dis2.close();


         out.write(buf1);
         out.write(buf2);
        out.flush();


            //in.close();
            out.close();
            System.out.println("File copied.");


    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

sdfgjhdgh
sdfgjhdgh   2016.03.12 07:44

用ffmpeg
ffmpeg -i 第一个文件名 -i 第二个文件名 输出文件名

Csdn user default icon
上传中...
上传图片
插入图片