我想从画廊获取视频,但我有一个问题,显示了手机的一般内存,我如何解决它?
private void selectVideo()
{
Intent i = new Intent(this, FastScrollerFilePickerActivity.class);
i.putExtra(FilePickerActivity.EXTRA_ALLOW_MULTIPLE, false);
i.putExtra(FilePickerActivity.EXTRA_ALLOW_CREATE_DIR, false);
i.putExtra(FilePickerActivity.EXTRA_MODE, FilePickerActivity.MODE_FILE);
String searchFolder;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
String fileSearchPath = prefs.getString("fileSearchPath", "last-used");
switch(fileSearchPath)
{
case "last-used":
default:
prefs = getSharedPreferences(SHARED_PREFS_KEY, MODE_PRIVATE);
searchFolder = prefs.getString(PICKER_DIR_PREF, Environment.getExternalStorageDirectory().getPath());
break;
case "external":
searchFolder = Environment.getExternalStorageDirectory().getPath();
break;
}
i.putExtra(FilePickerActivity.EXTRA_START_PATH, searchFolder);
startActivityForResult(i, SELECT_FILE_REQUEST);
}我想从画廊获取视频,但我有一个问题,显示了手机的一般内存,我如何解决它?
protected AbstractFilePickerFragment getFragment(@Nullable String startPath, int mode, boolean allowMultiple, boolean allowCreateDir, boolean allowExistingFile, boolean singleClick)
{
return getFragment(startPath, mode, allowMultiple, allowCreateDir);
}
protected AbstractFilePickerFragment<File> getFragment(
@Nullable final String startPath, final int mode, final boolean allowMultiple,
final boolean allowCreateDir) {
AbstractFilePickerFragment<File> fragment = new FastScrollerFilePickerFragment();
// startPath is allowed to be null. In that case, default folder should be SD-card and not "/"
fragment.setArgs(startPath != null ? startPath : Environment.getExternalStorageDirectory().getPath(),
mode, allowMultiple, allowCreateDir, true, false);
return fragment;
}发布于 2019-12-14 03:01:45
您可以使用以下行启动视频选取器
startActivityForResult(new Intent(Intent.ACTION_PICK,MediaStore.Video.Media.EXTERNAL_CONTENT_URI),
SELECT_FILE_REQUEST_CODE);如果你的应用程序崩溃了,它必须在Logcat中留下红色的消息,这对于试图让你理解问题非常有帮助。
现在,在您的onActivityResult方法中,输入以下内容以获取您选择的视频的路径:
public void onActivityResult(int reqCode, int resCode, Intent data){
if(reqCode == SELECT_FILE_REQUEST_CODE){
Uri selectedVideo = data.getData();
String[] filePathColumn = { MediaStore.Video.Media.DATA };
Cursor cursor = getContentResolver().query(selectedVideo,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String videoPath = cursor.getString(columnIndex);
cursor.close();
}
}https://stackoverflow.com/questions/59328018
复制相似问题