今天爱分享给大家带来Android 获取音频时间【附代码】,希望能够帮助到大家。
0.媒体库查找
String SELECTION = MediaStore.Audio.AudioColumns.SIZE + " >= ? AND " + MediaStore.Audio.AudioColumns.DURATION + " >= ?"; long filterSize = 100* 1024L; long filterTime =100* 1000L; Cursor cursor = context.getContentResolver().query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, new String[]{ BaseColumns._ID, MediaStore.Audio.AudioColumns.IS_MUSIC, MediaStore.Audio.AudioColumns.TITLE, MediaStore.Audio.AudioColumns.ARTIST, MediaStore.Audio.AudioColumns.ALBUM, MediaStore.Audio.AudioColumns.ALBUM_ID, MediaStore.Audio.AudioColumns.DATA, MediaStore.Audio.AudioColumns.DISPLAY_NAME, MediaStore.Audio.AudioColumns.SIZE, MediaStore.Audio.AudioColumns.DURATION }, SELECTION, new String[]{ String.valueOf(filterSize), String.valueOf(filterTime) }, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
然后操作cursor.
对于不在媒体库中的需要根据文件路径来:
1.MediaPlayer根据url/path
MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(url); mediaPlayer.prepare(); mediaPlayer.getDuration();
2.使用MediaMetadataRetriever,根据path可以获取音视频
/** * get Local video and audio duration * * @return */ public static int getLocalVideoDuration(String videoPath) { //时长(毫秒) int duration; try { MediaMetadataRetriever mmr = new MediaMetadataRetriever(); mmr.setDataSource(videoPath); duration = Integer.parseInt(mmr.extractMetadata (MediaMetadataRetriever.METADATA_KEY_DURATION))/1000; } catch (Exception e) { e.printStackTrace(); return 0; } return duration; }