本文整理汇总了Java中android.media.MediaExtractor.getTrackCount方法的典型用法代码示例。如果您正苦于以下问题:Java MediaExtractor.getTrackCount方法的具体用法?Java MediaExtractor.getTrackCount怎么用?Java MediaExtractor.getTrackCount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.media.MediaExtractor
的用法示例。
在下文中一共展示了MediaExtractor.getTrackCount方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: selectTrack
import android.media.MediaExtractor; //导入方法依赖的package包/类
private MediaFormat selectTrack(MediaExtractor extractor) {
int trackCount = extractor.getTrackCount();
Log.d(TAG, "trackCount :" + trackCount);
MediaFormat format;
for (int i = 0; i < trackCount; i++) {
extractor.selectTrack(i);
format = extractor.getTrackFormat(i);
Log.d(TAG, "Track media format :" + format.toString());
String mime = format.getString(MediaFormat.KEY_MIME);
if (mime.startsWith("video/")) {
return format;
}
}
return null;
}
示例2: selectTrack
import android.media.MediaExtractor; //导入方法依赖的package包/类
@TargetApi(16)
private int selectTrack(MediaExtractor extractor, boolean audio) {
int numTracks = extractor.getTrackCount();
for (int i = 0; i < numTracks; i++) {
MediaFormat format = extractor.getTrackFormat(i);
String mime = format.getString(MediaFormat.KEY_MIME);
if (audio) {
if (mime.startsWith("audio/")) {
return i;
}
} else {
if (mime.startsWith("video/")) {
return i;
}
}
}
return -5;
}
示例3: getFirstVideoAndAudioTrack
import android.media.MediaExtractor; //导入方法依赖的package包/类
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;
}
示例4: selectTrack
import android.media.MediaExtractor; //导入方法依赖的package包/类
/**
* Selects the video track, if any.
*
* @return the track index, or -1 if no video track is found.
*/
private static int selectTrack(MediaExtractor extractor) {
// Select the first video track we find, ignore the rest.
int numTracks = extractor.getTrackCount();
for (int i = 0; i < numTracks; i++) {
MediaFormat format = extractor.getTrackFormat(i);
String mime = format.getString(MediaFormat.KEY_MIME);
if (mime.startsWith("video/")) {
if (VERBOSE) {
Log.d(TAG, "Extractor selected track " + i + " (" + mime + "): " + format);
}
return i;
}
}
return -1;
}
示例5: initExtractor
import android.media.MediaExtractor; //导入方法依赖的package包/类
public boolean initExtractor(String filePath) throws IOException {
decoding = false;
audioExtractor = new MediaExtractor();
audioExtractor.setDataSource(filePath);
for (int i = 0; i < audioExtractor.getTrackCount() && !mime.startsWith("audio/"); i++) {
audioFormat = audioExtractor.getTrackFormat(i);
mime = audioFormat.getString(MediaFormat.KEY_MIME);
if (mime.startsWith("audio/")) {
audioExtractor.selectTrack(i);
} else {
audioFormat = null;
}
}
if (audioFormat != null && mime.equals("audio/mp4a-latm")) {
isStereo = (audioFormat.getInteger(MediaFormat.KEY_CHANNEL_COUNT) == 2);
sampleRate = audioFormat.getInteger(MediaFormat.KEY_SAMPLE_RATE);
return true;
//audio decoder not supported
} else {
mime = "";
audioFormat = null;
return false;
}
}
示例6: initExtractor
import android.media.MediaExtractor; //导入方法依赖的package包/类
public boolean initExtractor(String filePath) throws IOException {
decoding = false;
videoExtractor = new MediaExtractor();
videoExtractor.setDataSource(filePath);
for (int i = 0; i < videoExtractor.getTrackCount() && !mime.startsWith("video/"); i++) {
videoFormat = videoExtractor.getTrackFormat(i);
mime = videoFormat.getString(MediaFormat.KEY_MIME);
if (mime.startsWith("video/")) {
videoExtractor.selectTrack(i);
} else {
videoFormat = null;
}
}
if (videoFormat != null && mime.equals("video/avc")) {
width = videoFormat.getInteger(MediaFormat.KEY_WIDTH);
height = videoFormat.getInteger(MediaFormat.KEY_HEIGHT);
return true;
//video decoder not supported
} else {
mime = "";
videoFormat = null;
return false;
}
}
示例7: retrieveFrameRate
import android.media.MediaExtractor; //导入方法依赖的package包/类
public int retrieveFrameRate() {
MediaExtractor extractor = new MediaExtractor();
int frameRate = -1;
try {
//Adjust data source as per the requirement if file, URI, etc.
extractor.setDataSource(getPath());
int numTracks = extractor.getTrackCount();
for (int i = 0; i < numTracks; i++) {
MediaFormat format = extractor.getTrackFormat(i);
if (format.containsKey(MediaFormat.KEY_FRAME_RATE)) {
frameRate = format.getInteger(MediaFormat.KEY_FRAME_RATE);
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//Release stuff
extractor.release();
}
return frameRate;
}
示例8: selectTrack
import android.media.MediaExtractor; //导入方法依赖的package包/类
/**
* search first track index matched specific MIME
* @param extractor
* @param mimeType "video/" or "audio/"
* @return track index, -1 if not found
*/
protected static final int selectTrack(final MediaExtractor extractor, final String mimeType) {
final int numTracks = extractor.getTrackCount();
MediaFormat format;
String mime;
for (int i = 0; i < numTracks; i++) {
format = extractor.getTrackFormat(i);
mime = format.getString(MediaFormat.KEY_MIME);
if (mime.startsWith(mimeType)) {
if (DEBUG) {
Log.d(TAG_STATIC, "Extractor selected track " + i + " (" + mime + "): " + format);
}
return i;
}
}
return -1;
}
示例9: selectTrack
import android.media.MediaExtractor; //导入方法依赖的package包/类
/**
* Selects the video track, if any.
*
* @return the track index, or -1 if no video track is found.
*/
private static int selectTrack(MediaExtractor extractor) {
// Select the first video track we find, ignore the rest.
int numTracks = extractor.getTrackCount();
for (int i = 0; i < numTracks; i++) {
MediaFormat format = extractor.getTrackFormat(i);
String mime = format.getString(MediaFormat.KEY_MIME);
if (mime.startsWith("video/")) {
if (VERBOSE) {
Log.d(TAG, "Extractor selected track " + i + " (" + mime + "): " + format);
}
return i;
}
}
return -1;
}
示例10: selectTrack
import android.media.MediaExtractor; //导入方法依赖的package包/类
/**
* Selects the video track, if any.
*
* @return the track index, or -1 if no video track is found.
*/
private int selectTrack(MediaExtractor extractor) {
// Select the first video track we find, ignore the rest.
int numTracks = extractor.getTrackCount();
for (int i = 0; i < numTracks; i++) {
MediaFormat format = extractor.getTrackFormat(i);
String mime = format.getString(MediaFormat.KEY_MIME);
if (mime.startsWith("video/")) {
if (VERBOSE) {
Log.d(TAG, "Extractor selected track " + i + " (" + mime + "): " + format);
}
return i;
}
}
return -1;
}
示例11: concatVideoListFromMediaCodec
import android.media.MediaExtractor; //导入方法依赖的package包/类
private static void concatVideoListFromMediaCodec(List<String> pathList,
String destinationVideoFilePath, int videoRotation,
ConcatMediaCallback concatMediaCallback) throws IOException {
MediaExtractor extractor = new MediaExtractor();
MediaFormat format = null;
extractor.setDataSource(pathList.get(0));
int numTracks = extractor.getTrackCount();
// find and select the first audio track present in the file.
for (int i = 0; i < numTracks; i++) {
format = extractor.getTrackFormat(i);
if (format.getString(MediaFormat.KEY_MIME).startsWith("audio/")) {
extractor.selectTrack(i);
break;
}
}
MediaCodec mediaCodec = MediaCodec.createDecoderByType(format.getString(MediaFormat.KEY_MIME));
mediaCodec.configure(format, null, null, 0);
mediaCodec.start();
}
示例12: initMediaExtractor
import android.media.MediaExtractor; //导入方法依赖的package包/类
/**
* Initialize a MediaExctractor if needed
* @throws IOException
*/
private void initMediaExtractor() throws IOException{
String filePath = Environment.getExternalStorageDirectory().getPath() + "/rpi960mal810.h264";
//String filePath = "/storage/sdcard/rpi960mal810.h264";
//String filePath = Environment.getExternalStorageDirectory().getPath() + "/somefile2.264"; //???
//String filePath = "/storage/external_SD/movies/scut1.avi"; //???
//String filePath = Environment.getExternalStorageDirectory().getPath() + "/vv/cat.h264";
//String filePath = Environment.getExternalStorageDirectory().getPath() + "/vv/ravi2.264";
//String filePath = Environment.getExternalStorageDirectory().getPath() + "/testfile.264";
//String filePath = Environment.getExternalStorageDirectory().getPath() + "/vv/cat90.h264";
File f = new File(filePath);
boolean ext = f.exists();
mediaExtractor = new MediaExtractor();
mediaExtractor.setDataSource(filePath);
int trackCount = mediaExtractor.getTrackCount();
if(trackCount != 1){
// throw new RuntimeException("TrackCount = " + trackCount + ". Only Single Track is supported");
}
mediaExtractor.selectTrack(0);
}
示例13: initMediaExtractor
import android.media.MediaExtractor; //导入方法依赖的package包/类
/**
* Initialize a MediaExctractor if needed
* @throws IOException
*/
private void initMediaExtractor() throws IOException{
String filePath = Environment.getExternalStorageDirectory().getPath() + "/rpi960mal810.h264";
//String filePath = "/storage/sdcard/rpi960mal810.h264";
//String filePath = Environment.getExternalStorageDirectory().getPath() + "/somefile2.264"; //???
//String filePath = "/storage/external_SD/movies/scut1.avi"; //???
//String filePath = Environment.getExternalStorageDirectory().getPath() + "/vv/cat.h264";
//String filePath = Environment.getExternalStorageDirectory().getPath() + "/vv/ravi2.264";
//String filePath = Environment.getExternalStorageDirectory().getPath() + "/testfile.264";
//String filePath = Environment.getExternalStorageDirectory().getPath() + "/vv/cat90.h264";
File f = new File(filePath);
boolean ext = f.exists();
mediaExtractor = new MediaExtractor();
mediaExtractor.setDataSource(filePath);
int trackCount = mediaExtractor.getTrackCount();
if(trackCount != 1){
// throw new RuntimeException("TrackCount = " + trackCount + ". Only Single Track is supported");
}
mediaExtractor.selectTrack(0);
}
示例14: MP4Encorder
import android.media.MediaExtractor; //导入方法依赖的package包/类
public MP4Encorder(Session session){
mediaExtractor = new MediaExtractor();
try {
mediaExtractor.setDataSource(session.getVideoPath());
} catch (IOException e) {
e.printStackTrace();
}
for(int i = 0; i < mediaExtractor.getTrackCount(); i++) {
MediaFormat format = mediaExtractor.getTrackFormat(i);
String mime = format.getString(MediaFormat.KEY_MIME);
if (!mime.startsWith("video/")) {
continue;
}
framerate = format.getInteger(MediaFormat.KEY_FRAME_RATE);
mediaExtractor.selectTrack(i);
session.getVideoQuality().setmFrameRate(framerate);
}
}
示例15: prepare
import android.media.MediaExtractor; //导入方法依赖的package包/类
public void prepare(String path) {
mExtractor = new MediaExtractor();
try {
mExtractor.setDataSource(path);
} catch (IOException e) {
e.printStackTrace();
}
int tracks = mExtractor.getTrackCount();
for (int i = 0; i < tracks; i++) {
MediaFormat format = mExtractor.getTrackFormat(i);
String mime = format.getString(MediaFormat.KEY_MIME);
Logs.i(TAG, "mime = " + mime);
}
mExtractor.selectTrack(0);
mAudioBuffer = ByteBuffer.allocate(1024);
next();;
}