java – 在android中顺序合并2个音频文件?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 在android中顺序合并2个音频文件?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2255字,纯文字阅读大概需要4分钟。
内容图文
如何将两个音频文件合并到android平台中的单个文件中.
那就是如果我有两个音频文件即A和B.请给我代码来创建一个新的音频文件C,在A之后由B附加.
有没有必要将音频文件转换为字节/短数组?…
我确实喜欢这个,但它只播放第一个文件.
File firstFile=new File("/mnt/sdcard/Android/data/Dictation/Audio/Dict136.3gp");
File secondFile=new File("/mnt/sdcard/Android/data/Dictation/Audio/Dict139.3gp");
System.out.println("1 file:::::"+firstFile+"\n 2nd file::"+secondFile);
FileInputStream fistream1;
try {
fistream1 = new FileInputStream(firstFile);
FileInputStream fistream2 = new FileInputStream(secondFile);//second source file
SequenceInputStream sistream = new SequenceInputStream(fistream1, fistream2);
FileOutputStream fostream = new FileOutputStream("/mnt/sdcard/Android/data/Dictation/Audio/merged.3gp");//destinationfile
int temp;
while( ( temp = sistream.read() ) != -1)
{
System.out.print( (char) temp ); // to print at DOS prompt
fostream.write(temp); // to write to file
}
filePath="/mnt/sdcard/Android/data/Dictation/Audio/merged.3gp";
playAudio(filePath);
fostream.close();
fistream1.close();
fistream2.close();
提前致谢.
解决方法:
要组合3gp或mp4容器中的音频文件,您应该能够使用https://github.com/sannies/mp4parser
看看样品:
https://github.com/sannies/mp4parser/blob/master/examples/src/main/java/com/googlecode/mp4parser/AppendExample.java
得到mp4parser jar(通过maventral)并执行此操作:
File firstFile=new File("/mnt/sdcard/Android/data/Dictation/Audio/Dict136.3gp");
File secondFile=new File("/mnt/sdcard/Android/data/Dictation/Audio/Dict139.3gp");
Movie movieA = MovieCreator.build(firstFile);
Movie movieB = MovieCreator.build(secondFile);
final Movie finalMovie = new Movie();
List<Track> audioTracks = new ArrayList<>();
for (Movie movie : new Movie[] { movieA, movieB}) {
for (Track track : movie.getTracks()) {
if (track.getHandler().equals("soun")) {
audioTracks.add(track);
}
}
}
finalMovie.addTrack(new AppendTrack(audioTracks.toArray(new Track[audioTracks.size()])));
final Container container = new DefaultMp4Builder().build(finalMovie);
File mergedFile = new File("/mnt/sdcard/Android/data/Dictation/Audio/merged.3gp");
final FileOutputStream fos = new FileOutputStream(mergedFile);
FileChannel fc = new RandomAccessFile(mergedFile, "rw").getChannel();
container.writeContainer(fc);
fc.close();
内容总结
以上是互联网集市为您收集整理的java – 在android中顺序合并2个音频文件?全部内容,希望文章能够帮你解决java – 在android中顺序合并2个音频文件?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。