Android中從視訊中提取音訊
阿新 • • 發佈:2019-02-19
最近在做一款產品,需要從視訊中提取音訊。查了查資料發現了有FFMPEG,MP4Parser,Android自帶的解碼器。首先FFMPEG比較複雜據說也慢(來源於網際網路,我也不知道)然後就是Android自帶的Media Extractor類,不過該類用於4.3以上,適配性不好。最後選擇了MP4Parser類。
首先去下載個MP4Parser的包匯入到Android工程裡面,接下來就可以寫程式碼了。好了不多說了,上程式碼。
try { Movie movie = MovieCreator.build(fileName); for (Track t : movie.getTracks()) { if (t.getHandler().equals("soun")) { audioTracks.add(t); } } Movie result = new Movie(); if (audioTracks.size() > 0) { result.addTrack(new AppendTrack(audioTracks.toArray(new Track[audioTracks.size()]))); } Container out = new DefaultMp4Builder().build(result); try { FileChannel fc = new RandomAccessFile("/sdcard/output212.aac", "rw").getChannel(); out.writeContainer(fc); fc.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }