2

SD カードに mp4 ビデオ ファイルがあります。ビデオからオーディオを抽出し、MediaExtractor Api を使用して、抽出したオーディオを別のファイルとして SD カードに保存したいと思います。これが私が試したコードです:

  MediaExtractor extractor = new MediaExtractor();
  extractor.setDataSource(MEDIA_PATH_To_File_On_SDCARD);
  for (i = 0; i < extractor.getTrackCount(); i++) {
            MediaFormat format = extractor.getTrackFormat(i);
            String mime = format.getString(MediaFormat.KEY_MIME);
            if (mime.startsWith("audio/")) {
                extractor.selectTrack(i);
                decoder = MediaCodec.createDecoderByType(mime);

                if(decoder != null)
                {
                   decoder.configure(format, null, null, 0);
                }

                break;
            }
        }

選択したオーディオ トラックを取得して SD カードに保存する方法がわかりません。

4

2 に答える 2

2

私の投稿を見てくださいDecoding Video and Encoding again by Mediacodecは、例がある場所で破損したファイルを取得します (答えにも注意してください)。MediaMuxer を使用し、ビデオ トラックの AddTrack を呼び出し、各フレームのエンコード後にこのトラックのデータをマルチプレクサに書き込む必要があります。オーディオ用のトラックも追加する必要があります。オーディオのみが必要な場合は、ビデオ部分を無視して、オーディオに関連するマルチプレクサにデータを保存するだけです。grafikaページでいくつかの例を見ることができます。

また、ここでさらに例を見つけることができます: http://www.bigflake.com/mediacodec/

ありがとう

于 2016-02-15T14:28:53.383 に答える