Android获取视频音频的时长的方法
来源:互联网 发布:未来人工智能龙头股 编辑:程序博客网 时间:2024/05/18 00:17
mport android.content.ContentUris;import android.content.Context;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.provider.MediaStore;import android.support.v4.app.LoaderManager;import android.support.v4.content.CursorLoader;import android.support.v4.content.Loader;import android.util.Log;import com.zhihu.matisse.MimeType;/** * 创建人: zp * 创建时间:2017/8/3 */public class VideoLoader implements LoaderManager.LoaderCallbacks<Cursor>{ private static final String TAG = "VideoLoader"; public static final Uri QUERY_URI = MediaStore.Files.getContentUri("external"); public static final String SELECTION = MediaStore.Files.FileColumns.MEDIA_TYPE + "=?" + " AND " + MediaStore.MediaColumns.SIZE + ">0"; public static final String[] SELECTION_ARGS = new String[]{String.valueOf(MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO)}; public static final String[] PROJECTION = { MediaStore.Files.FileColumns._ID, MediaStore.MediaColumns.DISPLAY_NAME, MediaStore.MediaColumns.MIME_TYPE, MediaStore.MediaColumns.SIZE, "duration"}; public static final String ORDER_BY = MediaStore.Images.Media.DATE_TAKEN + " DESC"; private Context mContext; public VideoLoader(Context mContext) { this.mContext = mContext; } @Override public Loader<Cursor> onCreateLoader(int id, Bundle args) { return new CursorLoader(mContext,QUERY_URI,PROJECTION,SELECTION,SELECTION_ARGS,ORDER_BY); } @Override public void onLoadFinished(Loader<Cursor> loader, Cursor result) { if (result == null) return; while (result.moveToNext()){ VideoInfo info = valueOf(result); Log.d(TAG, info.toString()); } } @Override public void onLoaderReset(Loader<Cursor> loader) { } public class VideoInfo { public final long id; public final String mimeType; public final Uri uri; public final long size; public final long duration; // only for video, in ms private VideoInfo(long id, String mimeType, long size, long duration) { this.id = id; this.mimeType = mimeType; Uri contentUri; if (isVideo()) { contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI; } else { // ? contentUri = MediaStore.Files.getContentUri("external"); } this.uri = ContentUris.withAppendedId(contentUri, id); this.size = size; this.duration = duration; } public boolean isVideo() { return mimeType.equals(MimeType.MPEG.toString()) || mimeType.equals(MimeType.MP4.toString()) || mimeType.equals(MimeType.QUICKTIME.toString()) || mimeType.equals(MimeType.THREEGPP.toString()) || mimeType.equals(MimeType.THREEGPP2.toString()) || mimeType.equals(MimeType.MKV.toString()) || mimeType.equals(MimeType.WEBM.toString()) || mimeType.equals(MimeType.TS.toString()) || mimeType.equals(MimeType.AVI.toString()); } @Override public String toString() { return "VideoInfo{" + "id=" + id + ", mimeType='" + mimeType + '\'' + ", uri=" + uri + ", size=" + size + ", duration=" + duration + '}'; } } public VideoInfo valueOf(Cursor cursor) { return new VideoInfo(cursor.getLong(cursor.getColumnIndex(MediaStore.Files.FileColumns._ID)), cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.MIME_TYPE)), cursor.getLong(cursor.getColumnIndex(MediaStore.MediaColumns.SIZE)), cursor.getLong(cursor.getColumnIndex("duration"))); }}
这是调用方法
结果
阅读全文
0 0
- Android获取视频音频的时长的方法
- Android获取视频音频的时长的方法
- Android获取视频音频的时长的方法
- 获取HTML5视频时长的方法
- 不用打开视频、音频文件就能获取视频、音频的时长等属性
- java 获取音频,视频时长
- java通过代码获取音频的时长
- Android MediaRecorder获取音频流的方法
- android获取多媒体库的视频、音频、图片
- Android-获取手机上的图片、视频、音频
- java获取音频时长
- iOS 获取音频或是视频的时间
- iOS开发:获取一个视频、音频文件的播放时长
- PHP获取视频的第一帧与时长
- 获取视频时长
- 获取视频时长
- android获取图片原始长宽,获取视频第一帧的缩略图
- 视频、音频打时间戳的方法
- How to move the InnoDB log sequence number (LSN) forward
- dubbo中的config分析
- 数据库设计规范
- python机器学习之支持向量机
- Android实现闪屏欢迎界面
- Android获取视频音频的时长的方法
- 《中国区块链与物联网融合创新应用蓝皮书》即将发布
- sparksql cachetable 及 uncachtable
- tomcat ajp协议
- https的双向认证
- hive中select语法
- dataTable 最后一列添加选项操作
- opencv调用电脑摄像头+视频拼接
- HTML5_PS的几个基本用法