recherche

Maison  >  Questions et réponses  >  le corps du texte

java - 学习做一个安卓视频播放器,有一些小问题!忘大家请教

最近在学习安卓开发,有一些JAVA基础,想做一个简单的视频播放器,现在卡到了获取视频文件路径这一点上,现在已经会用Mediaplay,video等控件,但是只能每一次在AS中输入程序路径,想能够在程序上去获取本地所有视频路径,然后可以选择播放,可是网上查了很多,很多代码也运行不起也看的不是很懂,所以希望大家能给一个思路,我好在去学习。这个查了快一点了,也没有解决!谢谢大家

迷茫迷茫2809 Il y a quelques jours748

répondre à tous(4)je répondrai

  • 天蓬老师

    天蓬老师2017-04-18 10:51:29

    Deux façons

    1. Pour faire simple, appelez le sélecteur de fichiers dans le système pour vous aider à trouver le fichier dont vous avez besoin et vous renvoyer le chemin. Le code est petit et simple.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    <code>private void pickFile() {

        Intent intent = new Intent();

        //意图类型过滤,指定视频类型文件

        intent.setType("video/*");

        //意图动作,选取内容

        intent.setAction(Intent.ACTION_GET_CONTENT);

        startActivityForResult(intent, 0x01);

    }

     

    .

    .

    .

     

    @Override

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == 0x01 && resultCode == RESULT_OK) {

            Uri uri = data.getData();

            Cursor cursor = getContentResolver().query(uri, null, null, null, null);

            cursor.moveToFirst();

            //获取文件路径

            String path = cursor.getString(1);

        }

    }

    </code>

    2. Implémentez votre propre gestionnaire de fichiers et filtrez les types de fichiers dont vous avez besoin en analysant les fichiers sur la mémoire système. C'est un peu plus compliqué et implique

    et d'autres points de connaissances majeurs. , si vous voulez bien faire quelque chose, n'ayez pas peur des ennuis et allez simplement le mâcher. ContentResolver,Uri,Cursor,MediaStore,MimeType,Intent

    La première méthode vous permet de savoir de quoi il s'agit, et la deuxième méthode vous permet de savoir pourquoi.

    Écrivez correctement le mot « wang », pas « oublier ».

    La deuxième méthode est de vous donner ces références et de les suivre pour la mettre en œuvre vous-même.

    répondre
    0
  • 高洛峰

    高洛峰2017-04-18 10:51:29

    Tout d'abord, résolvez vos doutes sur la façon d'obtenir tous les chemins vidéo locaux. Lorsque le système Android stocke de la vidéo, de l'audio, des images et d'autres ressources, il stocke automatiquement les informations associées dans la base de données. Les informations incluent le nom, la taille, le chemin de stockage, etc. Si nous lisons un certain fichier vidéo, obtenons son chemin de stockage à partir de la base de données, puis récupérons la vidéo elle-même via le chemin. Ensuite, vous devez faire les choses suivantes :
    1. Comprendre le nom et le champ de la base de données qui stocke les informations vidéo Android
    2. Comprendre la méthode d'obtention des données dans la base de données par Android <🎜. > Regardez le scan Tous les codes des informations vidéo ont été recherchés avec désinvolture. Je ne suis pas sûr qu'ils soient corrects, je vais les commenter pour vous.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    <code>private void scanVideoUri(){

            //通过ContentResolver从数据库获取信息,Curse是获取的结果

            Cursor cursor = mContext.getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,

                            null, null, null, null);

            int totalCount =cursor.getCount();//计算所有结果的条数

            cursor.moveToFirst();//此句一定要有

            //遍历所有的Video信息

            for( int i = 0;i < totalCount;i++){

                String data = cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.DATA));

                String data1 = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));

                String title = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.TITLE));

                String type = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.MIME_TYPE));

                int id = cursor.getInt(cursor.getColumnIndex(MediaStore.Video.Media._ID));

                Log.e(TAG, data+title+type);

                cursor.moveToNext();//访问下一个

            }

        }

        </code>

    C'est normal si vous ne comprenez pas le code. Décomposez la cible, puis assemblez-la pour obtenir le résultat final.

    répondre
    0
  • 阿神

    阿神2017-04-18 10:51:29

    Lisez la base de données du système et recherchez directement toutes les vidéos visibles dans votre liste de vidéos mobiles. Pour une mise en œuvre spécifique, vous pouvez demander à Du Niang~

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-18 10:51:29

    http://blog.csdn.net/github_3... Ce tutoriel est bon

    répondre
    0
  • Annulerrépondre