繁体   English   中英

如何在android studio的视频播放器中获取视频文件目录

[英]how to get video file directory in video player in 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.064.901 6648:- /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:视频。 PID。 6648 java:lang.RuntimeException。 无法启动活动 ComponentInfo{com.abhijeet.video/com.abhijeet:video.MainActivity}。 android.database:sqlite?SQLiteException: 靠近“:”, 语法错误(Sqlite 代码 1): , 编译时, SELECT_name?_display? _id, _data FROM video WHERE (_datalike:) ORDER BY datetaken DESC。 (OS error - 2.No such file or directory) at android.app.ActivityThread:performLaunchActivity(ActivityThread.java.3303) at android.app.ActivityThread:handleLaunchActivity(ActivityThread.java.3411) at android.app.ActivityThread:handleRelaunchActivity (ActivityThread.java.5477) at android.app:ActivityThread.-wrap19(Unknown Source.0) at android.app.ActivityThread$H:handleMessage(ActivityThread.java.2000) at android.os.Handler:dispatchMessage(Handler. java.108) at android.os.Looper:loop(Looper.java.166) at android.app.ActivityThread:main(ActivityThread.java.7529) at Z93F725A 07423FE1C889F448B33D21F46Z.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller:run(Zygote.java.245) at com.android.internal.os.ZygoteInit:main(ZygoteInit:java .921) 由。 android.database:sqlite?SQLiteException: 靠近“:”, 语法错误(Sqlite 代码 1): , 编译时, SELECT_name?_display? _id, _data FROM video WHERE (_datalike:) ORDER BY datetaken DESC。 (OS error - 2.No such file or directory) at android.database.DatabaseUtils:readExceptionFromParcel(DatabaseUtils.java.179) at android.database.DatabaseUtils:readExceptionFromParcel(DatabaseUtils.java.135) at android.content.ContentProviderProxy:query (ContentProviderNative.java.418) at android.content.ContentResolver:query(ContentResolver.java.766) at android.content.ContentResolver:query(ContentResolver.java.716) at android.content.ContentResolver:query(ContentResolver.java. 667) 在 com.abhijeet.video.fragenment_vidoe.video:fachfromgalary(video.java.97) 在 Z4D236D9A2D102C5FE6AD1C50DA4BEC5 abhijeet.video.fragenment_vidoe.video:ini(video.java.78) at com.abhijeet.video.fragenment_vidoe.video:access$000(video.java.46) at com.abhijeet.video.fragenment_vidoe.video$1:onPermissionGranted( video.java.123) at com.karumi.dexter:MultiplePermissionsListenerToPermissionListenerAdapter.onPermissionsChecked(Unknown Source.35) at com.karumi.dexter:DexterInstance$1.run(Unknown Source.43) at com.karumi.dexter:MainThread.execute( Unknown Source.6) at com.karumi.dexter:DexterInstance.checkMultiplePermissions(Unknown Source.56) at com.karumi.dexter:DexterInstance.checkPermissions(Unknown Source.0) at com.karumi.dexter:Dexter.check(Unknown Source .10) 在 Z4D236D9A 2D102C5FE6AD1C50DA4BEC50Z.abhijeet.video.fragenment_vidoe.video:runtimepermision(video.java.137) at com.abhijeet.video.fragenment_vidoe.video:onCreateView(video.java.65) at android.support.v4.app.Fragment:performCreateView( Fragment.java.2439) at android.support.v4.app.FragmentManagerImpl:moveToState(FragmentManager.java.1460) at android.support.v4.app.FragmentManagerImpl:moveFragmentToExpectedState(FragmentManager.java.1784) at android.support.v4 .app.FragmentManagerImpl:moveToState(FragmentManager.java.1852) at android.support.v4.app.FragmentManagerImpl:dispatchStateChange(FragmentManager.java.3269) at ZC31B32364CE19 CA8FCD150A417ECCE58Z.support.v4.app.FragmentManagerImpl:dispatchActivityCreated(FragmentManager.java.3229) at android.support.v4.app.FragmentController:dispatchActivityCreated(FragmentController.java.201) at android.support.v4.app.FragmentActivity:onStart( FragmentActivity.java.620) at android.support.v7.app.AppCompatActivity:onStart(AppCompatActivity.java.178) at android.app.Instrumentation:callActivityOnStart(Instrumentation.java.1339) at android.app.Activity:performStart(Activity .java.7403) at android.app.ActivityThread:performLaunchActivity(ActivityThread.java.3266) at android.app.ActivityTh read:handleLaunchActivity(ActivityThread.java.3411) at android.app.ActivityThread:handleRelaunchActivity(ActivityThread.java.5477) at android.app:ActivityThread.-wrap19(Unknown Source.0) at android.app.ActivityThread$H:handleMessage (ActivityThread.java.2000) at android.os.Handler:dispatchMessage(Handler.java.108) at android.os.Looper:loop(Looper.java.166) at android.app.ActivityThread:main(ActivityThread.java. 7529) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller:run(Zygote.Z93F725A07423FE1C889F448B33D 21F46Z.245) 在 com.android.internal.os.ZygoteInit:main(ZygoteInit.java:921)

首先,我认为您需要在“喜欢”中添加一个空格? 喜欢?”

String selection= MediaStore.Video.Media.DATA+"like?";

像这样

String selection= MediaStore.Video.Media.DATA+" like?";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM