java - 如何在android studio的视频播放器中获取视频文件目录
问题描述
这就是我所做的,
public video() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate( R.layout.fragment_video, container, false );
recyclerView = view.findViewById( R.id.recyvle );
videomodelArrayList = new ArrayList<>();
runtimepermision();
return view;
}
private void ini() {
LinearLayoutManager linearLayoutManager=new LinearLayoutManager( getContext());
// GridLayoutManager linearLayoutManager = new GridLayoutManager( getContext() ,2);
recyclerView.setHasFixedSize( true );
recyclerView.setLayoutManager( linearLayoutManager );
fachfromgalary();
}
private void fachfromgalary() {
Uri uri;
Cursor cursor;
int coli_int_data, columb_index_filder_name, columb_id, thum;
String absilutpathimage = null;
uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
String[] projecter = {
MediaStore.Video.Media._ID,MediaStore.MediaColumns.DATA,
MediaStore.Video.DEFAULT_SORT_ORDER,
MediaStore.Video.Thumbnails.DATA};
String orderby = MediaStore.Images.Media.DATE_TAKEN;
String selection= MediaStore.Video.Media.DATA+"like?";
String []aray= new String[]{"%FolderName%"};
cursor = getActivity().getContentResolver().query( uri, projecter, selection, aray, orderby + " DESC" );
coli_int_data = cursor.getColumnIndexOrThrow( MediaStore.MediaColumns.DATA );
// columb_index_filder_name = cursor.getColumnIndexOrThrow( MediaStore.Video.Media.DISPLAY_NAME );
// columb_id=cursor.getColumnIndexOrThrow( MediaStore.Video.Media._ID );
thum = cursor.getColumnIndexOrThrow( MediaStore.Video.Thumbnails.DATA );
while (cursor.moveToNext()) {
absilutpathimage = cursor.getString( coli_int_data );
videomodel videomodel = new videomodel();
videomodel.setBoolean_selected( false );
// videomodel.setStr_name( columb_index_filder_name );
videomodel.setStr_path( absilutpathimage );
videomodel.setStr_thumb( cursor.getString( thum ) );
videomodelArrayList.add( videomodel );
}
videoadapter videoadapter = new videoadapter( getActivity().getApplicationContext(), videomodelArrayList,getActivity() );
recyclerView.setAdapter( videoadapter );
}
private void runtimepermision() {
Dexter.withActivity( getActivity() ).withPermission( Manifest.permission.READ_EXTERNAL_STORAGE ).withListener( new PermissionListener() {
@Override
public void onPermissionGranted(PermissionGrantedResponse response) {
ini();
}
@Override
public void onPermissionDenied(PermissionDeniedResponse response) {
}
@Override
public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) {
token.continuePermissionRequest();
}
} ).check();
错误日志:
2019-11-12 15:09:06.900 6648-6682/com.abhijeet.video E/MemoryLeakMonitorManager:MemoryLeakMonitor.jar 不存在!2019-11-12 15:09:06.901 6648-6648/com.abhijeet.video E/Minikin:无法获取 cmap 表大小!2019-11-12 15:09:12.444 6648-6699/com.abhijeet.video E/vndksupport:无法从 sphal 命名空间加载 vendor/lib64/egl/libGLES_mali.so:dlopen 失败:库“vendor/lib64/egl/ libGLES_mali.so" 未找到。2019-11-12 15:11:53.515 6648-6648/com.abhijeet.video E/AndroidRuntime:致命异常:主进程:com.abhijeet.video,PID:6648 java.lang.RuntimeException:无法启动活动 ComponentInfo{ com.abhijeet.video/com.abhijeet.video.MainActivity}:android.database.sqlite.SQLiteException:靠近“?”:语法错误(Sqlite 代码 1):,编译时:SELECT _data,_display_name,_id,
解决方案
首先,我认为您需要在“喜欢”中添加一个空格?喜欢?”
String selection= MediaStore.Video.Media.DATA+"like?";
像这样
String selection= MediaStore.Video.Media.DATA+" like?";
推荐阅读
- ssl - 证书错误 DLG_FLAGS_SEC_CERT_CN_INVALID
- java - 为什么 lockCanvas 会抛出非法参数异常?
- java - 尝试加载新数据时 Firebase LimitToLast 崩溃
- android - 并行使用 MediaRecorder.AudioSource.CAMCORDER
- javascript - $.contains() 方法的 jQuery 用法
- ajax - 用茉莉花测试猎犬的远程选项
- c# - 如何在mvc中删除列表的特定元素?
- spring - Spring ClasPathXmlApplicationContext registerShutDownHook 与使用 try-with-resources
- json - Symfony FOSRest 返回 html 而不是 json
- java - 在 Android 上使用 Conscrypt 进行 ECC 密钥包装