gpt4 book ai didi

java - 显示指定文件夹中的视频列表

转载 作者:太空狗 更新时间:2023-10-29 13:16:15 25 4
gpt4 key购买 nike

我已尝试使用以下代码显示指定文件夹中 Activity 中的视频缩略图。问题是当我调试应用程序时,它会显示所有视频路径,但不会显示这些。请在我做错的地方提出任何建议?

代码

private void init_phone_video_grid() {
System.gc();
String[] proj = { MediaStore.Video.Media._ID,MediaStore.Video.Media.DATA,MediaStore.Video.Media.DISPLAY_NAME,MediaStore.Video.Media.SIZE };
File file = new File(Environment.getExternalStorageDirectory() + File.separator + "Funtube/UserData/Videos/" + File.separator);
File[] list = file.listFiles();
for (File f: list) {
String name = f.getName();
if (name.endsWith(".mp4"))
count++;
path = file.getAbsolutePath() + "/" + name;
}

videocursor = managedQuery(Uri.parse(path), proj, null, null, null);

//videocursor = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,proj, null, null, null);
count = videocursor.getCount();
videolist = (ListView) findViewById(R.id.PhoneVideoList);
videolist.setAdapter(new VideoAdapter(getApplicationContext()));
videolist.setOnItemClickListener(videogridlistener);
}

视频适配器

public class VideoAdapter extends BaseAdapter {
private Context vContext;

public VideoAdapter(Context c) {
vContext = c;
}

public int getCount() {
return count;
}

public Object getItem(int position) {
return position;
}

public long getItemId(int position) {
return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
System.gc();
ViewHolder holder;
String id = null;
convertView = null;
if (convertView == null) {
convertView = LayoutInflater.from(vContext).inflate(
R.layout.listitem, parent, false);
holder = new ViewHolder();
holder.txtTitle = (TextView) convertView
.findViewById(R.id.txtTitle);
holder.txtSize = (TextView) convertView
.findViewById(R.id.txtSize);
holder.thumbImage = (ImageView) convertView
.findViewById(R.id.imgIcon);

video_column_index = videocursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME);
videocursor.moveToPosition(position);
id = videocursor.getString(video_column_index);
video_column_index = videocursor
.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE);
videocursor.moveToPosition(position);
// id += " Size(KB):" +
// videocursor.getString(video_column_index);
holder.txtTitle.setText(id);
holder.txtSize.setText(" Size(KB):"
+ videocursor.getString(video_column_index));

String[] proj = { MediaStore.Video.Media._ID,
MediaStore.Video.Media.DISPLAY_NAME,
MediaStore.Video.Media.DATA };
@SuppressWarnings("deprecation")
Cursor cursor = managedQuery(
MediaStore.Video.Media.EXTERNAL_CONTENT_URI, proj,
MediaStore.Video.Media.DISPLAY_NAME + "=?",
new String[] { id }, null);
cursor.moveToFirst();
long ids = cursor.getLong(cursor
.getColumnIndex(MediaStore.Video.Media._ID));

ContentResolver crThumb = getContentResolver();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1;
Bitmap curThumb = MediaStore.Video.Thumbnails.getThumbnail(
crThumb, ids, MediaStore.Video.Thumbnails.MICRO_KIND,
options);
holder.thumbImage.setImageBitmap(curThumb);
curThumb = null;

} /*
* else holder = (ViewHolder) convertView.getTag();
*/
return convertView;
}
}

最佳答案

Display video list from specified folder

使用 MediaStore.Images.Media.DATAlike 从哪个目录中获取所有 mp4 文件:

videocursor = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
proj,
MediaStore.Images.Media.DATA + " LIKE ? ",
new String[] {"%"+file.getAbsolutePath().toString()+"%"}, null);

关于java - 显示指定文件夹中的视频列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34440770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com