Android多媒體訪問

來源:互聯網
上載者:User

標籤:android   style   blog   http   color   使用   strong   檔案   

Android的多媒體檔案主要儲存在/data/data/com.android.providers.media/databases目錄下,該目錄下有兩個db檔案,一個是內部儲存資料庫檔案(internal.db),一個是儲存卡資料庫(external-XXXX.db)。
媒體檔案的操作主要是圍繞著這兩個資料庫來進行。這兩個資料庫的結構是完全一模一樣的。

Android提供了MediaStore類,該類是一個ContentProvider,管理著裝置上內建的和外部的多媒體檔案,同時包含著每一個多媒體檔案的資料資訊。

通過Uri我們可以擷取到媒體資訊的完整路徑,類型等資訊,同樣,我們也可以通過檔案路徑建立Uri

由檔案路徑得到URI

    Uri mUri = Uri.parse("content://media/external/images/media");     Uri mImageUri = null;    Cursor cursor = mContext.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null,                    null, MediaStore.Images.Media.DEFAULT_SORT_ORDER);    cursor.moveToFirst();    while (!cursor.isAfterLast()) {        String data = cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.DATA));        if (picPath.equals(data)) {            int ringtoneID = cursor.getInt(cursor.getColumnIndex(MediaStore.MediaColumns._ID));            mImageUri = Uri.withAppendedPath(mUri, ""+ ringtoneID);            break;        }                    cursor.moveToNext();    }


由Uri擷取檔案路徑

    string  myImageUrl = "content://media/external/images/media/***";    Uri uri = Uri.parse(myImageUrl);        String[] proj = { MediaStore.Images.Media.DATA };       Cursor actualimagecursor = mContext.getContentResolver().query(uri,proj,null,null,null);      int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);       actualimagecursor.moveToFirst();           String img_path = actualimagecursor.getString(actual_image_column_index);      File file = new File(img_path);    Uri fileUri = Uri.fromFile(file);


擷取本地媒體資料庫中的video相關資訊

    private void testScanVideoUri(){        Log.w(TAG,"testScanVideoUri come in=="+MediaStore.Video.Media.EXTERNAL_CONTENT_URI);        Cursor cursor = mContext.getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,                         null, null,null, null);        int totalCount =cursor.getCount();        Log.w(TAG,"totalCount = "+totalCount);        cursor.moveToFirst();                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.i(TAG,"data="+data);            Log.i(TAG,"data1="+data1);            Log.i(TAG,"title="+title);            Log.i(TAG,"type="+type);            Log.i(TAG,"id="+id);                        cursor.moveToNext();        }        Log.w(TAG,"testScanVideoUri come out");    }

 

參考:
Android媒體的一些使用總結
http://blog.csdn.net/xingtian713/article/details/6458150

Android媒體的一些使用總結(2)
http://blog.csdn.net/xingtian713/article/details/6525411

Android多媒體學習一:Android中Image的簡單一實例。
http://blog.csdn.net/chenjie19891104/article/details/6320323

Android開發之旅: Intents和Intent Filters(理論部分)
http://www.cnblogs.com/skynet/archive/2010/07/20/1781644.html

Android學習筆記——檔案路徑(/mnt/sdcard/...)、Uri(content://media/external/...)學習   (比較透徹)
http://www.cnblogs.com/lingyun1120/archive/2012/04/18/2455212.html

Android 4.4從圖庫選擇圖片,擷取圖片路徑並裁剪
http://blog.csdn.net/tempersitu/article/details/20557383

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.