Back to project page android-transcoder.
The source code is released under:
Apache License
If you think the Android project android-transcoder listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* * Copyright (C) 2014 Yuya Tanaka/* w ww . ja va2 s .c o m*/ * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.ypresto.androidtranscoder.utils; import android.media.MediaExtractor; import android.media.MediaFormat; public class MediaExtractorUtils { private MediaExtractorUtils() { } public static class TrackResult { private TrackResult() { } public int mVideoTrackIndex; public String mVideoTrackMime; public MediaFormat mVideoTrackFormat; public int mAudioTrackIndex; public String mAudioTrackMime; public MediaFormat mAudioTrackFormat; } public static TrackResult getFirstVideoAndAudioTrack(MediaExtractor extractor) { TrackResult trackResult = new TrackResult(); trackResult.mVideoTrackIndex = -1; trackResult.mAudioTrackIndex = -1; int trackCount = extractor.getTrackCount(); for (int i = 0; i < trackCount; i++) { MediaFormat format = extractor.getTrackFormat(i); String mime = format.getString(MediaFormat.KEY_MIME); if (trackResult.mVideoTrackIndex < 0 && mime.startsWith("video/")) { trackResult.mVideoTrackIndex = i; trackResult.mVideoTrackMime = mime; trackResult.mVideoTrackFormat = format; } else if (trackResult.mAudioTrackIndex < 0 && mime.startsWith("audio/")) { trackResult.mAudioTrackIndex = i; trackResult.mAudioTrackMime = mime; trackResult.mAudioTrackFormat = format; } if (trackResult.mVideoTrackIndex >= 0 && trackResult.mAudioTrackIndex >= 0) break; } if (trackResult.mVideoTrackIndex < 0 || trackResult.mAudioTrackIndex < 0) { throw new IllegalArgumentException("extractor does not contain video and/or audio tracks."); } return trackResult; } }