1. 程式人生 > >Android中從視訊中提取音訊

Android中從視訊中提取音訊

     最近在做一款產品,需要從視訊中提取音訊。查了查資料發現了有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();
            }