问题描述
我正在尝试从Android 11中的MediaStore.Video检索视频内容。游标正在使用以下代码返回“ 0”。我在清单文件中添加了READ_EXTERNAL_STORAGE权限,并在访问以下代码之前在活动中添加了运行时权限检查。您能帮我如何从MediaStore中的所有视频中获取名称,持续时间,尺寸字段。Android11中的视频提供程序。
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main() {
string fileName,cont;
ifstream inputFile;
do {
cout << "Please enter the file name: ";
cin >> fileName;
inputFile.open(fileName);
if (inputFile.is_open()) {
int num = 0;
int total = 0;
while (inputFile >> num) {
total += num;
}
inputFile.close();
cout << "Total is: " << total << endl;
}
else {
cout << "Failed to open file." << endl;
}
cout << "Do you want to continue processing files? (yes or no): " << endl;
}
while ((cin >> cont) && (cont == "yes"));
return 0;
}
解决方法
这对您有帮助吗?
private final Uri uri = MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI;
public Cursor getandroidPlaylistcursor(Context context) {
ContentResolver resolver = context.getContentResolver();
final String id = MediaStore.Audio.Playlists._ID;
final String name = MediaStore.Audio.Playlists.NAME;
final String[] columns = { id,name };
return resolver.query(uri,columns,null,name + " ASC");
}
但是,如果您使用的是Mefiaplayer:
MediaPlayer mp = MediaPlayer.create(this,Uri.parse(uriOfYourFile));
int duration = mp.getDuration();
etc(...)