如何将两个音频文件合并到android中的单个音频文件中?

如何将两个音频文件合并到android中的单个音频文件中?,第1张

概述我想获得两个音频文件作为输入,然后按字节合并它们并将其保存为单个文件.在这段代码中我尝试用Java做它并且它工作正常,但我不知道如何在android中做到这一点.如何在android中做到这一点?importjava.io.File;importjava.io.InputStream;importjava.nio.file.Files;import

我想获得两个音频文件作为输入,然后按字节合并它们并将其保存为单个文件.
在这段代码中我尝试用Java做它并且它工作正常,但我不知道如何在androID中做到这一点.

如何在androID中做到这一点?

import java.io.file;import java.io.inputStream;import java.nio.file.files;import java.nio.file.Paths;import java.nio.file.Path;import javax.sound.sampled.AudiofileFormat;import javax.sound.sampled.AudioinputStream;import javax.sound.sampled.AudioSystem;public class filemixer {    public static voID main(String[] args)    {        try        {    Path path1 = Paths.get("C:\Srini\Wav\welcome.wav");    Path path2 = Paths.get("C:\Srini\Wav\goodbye.wav");     String path3 ="C:\Srini\Wav\srini12.wav";    file Newfilepath=new file(path3);    byte[] byte1 = files.readAllBytes(path1);    byte[] byte2 = files.readAllBytes(path2);    byte[] out = new byte[byte1.length];    for (int i=0; i<byte1.length; i++)    {        out[i] = (byte) ((byte1[i] + byte2[i]) >> 1);    }    inputStream byteArray = new ByteArrayinputStream(out);    AudioinputStream ais = AudioSystem.getAudioinputStream(byteArray);    AudioSystem.write(ais, AudiofileFormat.Type.WAVE,Newfilepath);    }        catch(Exception e)        {            e.printstacktrace();        }        }}

解决方法:

private voID mergeSongs(file mergedfile,file...mp3files){        fileinputStream fisToFinal = null;        fileOutputStream fos = null;        try {            fos = new fileOutputStream(mergedfile);            fisToFinal = new fileinputStream(mergedfile);            for(file mp3file:mp3files){                if(!mp3file.exists())                    continue;                fileinputStream fisSong = new fileinputStream(mp3file);                SequenceinputStream sis = new SequenceinputStream(fisToFinal, fisSong);                byte[] buf = new byte[1024];                try {                    for (int readNum; (readNum = fisSong.read(buf)) != -1;)                        fos.write(buf, 0, readNum);                } finally {                    if(fisSong!=null){                        fisSong.close();                    }                    if(sis!=null){                        sis.close();                    }                }            }        } catch (IOException e) {            e.printstacktrace();        }finally{            try {                if(fos!=null){                    fos.flush();                    fos.close();                }                if(fisToFinal!=null){                    fisToFinal.close();                }            } catch (IOException e) {                e.printstacktrace();            }        }    } 

总结

以上是内存溢出为你收集整理的如何将两个音频文件合并到android中的单个音频文件中?全部内容,希望文章能够帮你解决如何将两个音频文件合并到android中的单个音频文件中?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1097958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存