解释这段代码String path = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA)); MediaMetadataRetriever retriever = new MediaMetadataRetriever(); retriever.setDataSource(path); String duration = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
时间: 2023-04-09 12:00:47 浏览: 207
这段代码是用于获取视频文件的路径,并使用MediaMetadataRetriever类获取视频文件的时长。具体来说,首先通过cursor对象获取视频文件的路径,然后使用MediaMetadataRetriever类的setDataSource方法设置数据源为该路径,最后使用extractMetadata方法获取视频文件的时长。
相关问题
public List<ImageItem> getAllImages(Context context) { List<ImageItem> data = new ArrayList<>(); int id = 0; Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, null); if (cursor.moveToFirst()) { do { String title = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.TITLE)); String url = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA)); ImageItem images = new ImageItem(id, title, url); data.add(images); id++; } while (cursor.moveToNext()); cursor.close(); } return data; }
很高兴为您提供帮助。这里是获取所有图片的代码:使用ContentResolver查询MediaStore.Images.Media.EXTERNAL_CONTENT_URI,遍历查询结果,将查询到的图片信息封装到ImageItem中,最后返回ImageItem的列表。
package com.music.zhangdaosen; import android.annotation.SuppressLint; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.provider.MediaStore; import android.util.Log; import android.widget.ArrayAdapter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; public class SongHelper { public static List<Song>musicList = new ArrayList<>(); // static List<Song>musicList; public static List<Song> getLocalMusic(Context context){ Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; ContentResolver resolver = context.getContentResolver(); Cursor cursor = resolver.query(uri,null,null,null,null); if(cursor !=null){ Song song; while (cursor.moveToNext()){ song =new Song(); int index = cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME); song.name = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME)); song.singer = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST)); song.path = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA)); song.duration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION)); Log.d("SongHelper--keyar","get"+song.name+" "+song.duration); musicList.add(song); SimpleDateFormat sdf = new SimpleDateFormat("mm:ss"); String time = sdf.format(new Date(song.duration)); } Log.d("SongHelper--keyar","get musicList"+ musicList.size()); } cursor.close(); return musicList; } public static String changeTime(int duration){ int min = duration/1000/60; int sec = duration/1000%60; if(sec<10){ return min+":0"+sec; } return min+":"+sec; } }
这是一段Java代码,看起来是一个获取本地音乐列表的帮助类。它使用了Android提供的MediaStore来查询本地的音频文件,然后将查询到的结果封装成一个Song对象,并保存在一个List中。可以通过调用`getLocalMusic()`方法来获取本地音乐列表。其中,每一个Song对象代表一首音乐,包含了音乐的名称、歌手、路径、时长等信息。`changeTime()`方法用于将时间格式从毫秒转换为分秒形式。
阅读全文