java - 学习做一个安卓视频播放器,有一些小问题!忘大家请教
迷茫
迷茫 2017-04-18 10:49:29
0
4
711

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

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

membalas semua(4)
Peter_Zhu

Dua cara

1. Untuk memudahkannya, hubungi pemilih fail dalam sistem untuk membantu anda mencari fail yang anda perlukan dan mengembalikan laluan kepada anda. Ianya semudah:

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);
    }
}

2. Laksanakan pengurus fail anda sendiri dan tapis jenis fail yang anda perlukan dengan mengimbas fail pada memori sistem Ia lebih rumit dan melibatkan ContentResolver,Uri,Cursor,MediaStore,MimeType,Intent dan perkara-perkara penting yang lain , jika anda ingin membuat sesuatu dengan baik, jangan takut dengan masalah dan pergi dan kunyah sahaja.

Cara pertama membolehkan anda mengetahui perkara itu, dan cara kedua memberitahu anda sebabnya.

Tulis perkataan "wang" dengan betul, bukan "lupa".

Kaedah kedua ialah memberi anda rujukan ini dan mengikutinya untuk melaksanakannya sendiri.

小葫芦

Pertama sekali, selesaikan keraguan anda tentang cara mendapatkan semua laluan video tempatan. Apabila sistem Android menyimpan video, audio, gambar dan sumber lain, ia akan menyimpan maklumat berkaitan secara automatik dalam pangkalan data, termasuk nama, saiz, laluan storan, dsb. Jika kita memainkan fail video tertentu, dapatkan laluan penyimpanannya daripada pangkalan data, dan kemudian dapatkan video itu sendiri melalui laluan itu. Kemudian anda perlu melakukan perkara berikut:
1. Fahami nama pangkalan data yang menyimpan maklumat video Android, dan medan
2. Fahami kaedah mendapatkan data dalam pangkalan data daripada Android telah dibungkus
Lihat imbasan Semua kod maklumat video telah dicari secara santai Saya tidak pasti ianya betul saya akan mengulasnya untuk anda.

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();//访问下一个
        }
    }
    

Adalah perkara biasa jika anda tidak dapat memahami kod tersebut dan kemudian sambungkannya untuk mendapatkan hasil akhir.

阿神

Baca pangkalan data sistem dan cari semua video yang boleh dilihat dalam senarai video telefon mudah alih anda secara langsung. Untuk pelaksanaan khusus, anda boleh bertanya kepada Du Niang~

左手右手慢动作

http://blog.csdn.net/github_3... Tutorial ini bagus

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!