新聞中心
在現(xiàn)代社會中,多媒體技術(shù)被廣泛應(yīng)用,并大量地產(chǎn)生了各種各樣的媒體文件,包括音頻、圖片、視頻等。為了更加高效地管理這些多媒體文件,Android系統(tǒng)提供了一個多媒體數(shù)據(jù)庫來幫助開發(fā)人員進行數(shù)據(jù)的處理和存儲。該數(shù)據(jù)庫可以被用于應(yīng)用程序的開發(fā),方便用戶對自己的多媒體資源進行管理和瀏覽。

成都創(chuàng)新互聯(lián)專注于恩施土家企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城系統(tǒng)網(wǎng)站開發(fā)。恩施土家網(wǎng)站建設(shè)公司,為恩施土家等地區(qū)提供建站服務(wù)。全流程定制制作,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
本文將詳細介紹Android多媒體數(shù)據(jù)庫的各個方面,包括數(shù)據(jù)庫結(jié)構(gòu)、使用方法以及擴展等方面。
一、Android多媒體數(shù)據(jù)庫的結(jié)構(gòu)
Android多媒體數(shù)據(jù)庫用于存儲和管理多媒體文件的相關(guān)信息,包括音頻、圖片、視頻等。該數(shù)據(jù)庫主要包含以下表:
1. MediaStore.Images:用于存儲圖片的相關(guān)信息,包括文件名、路徑、大小、日期、拍攝時間等。該表的主要字段如下:
– _ID:圖片ID
– _DATA:圖片路徑
– DATE_ADDED:添加時間
– DATE_MODIFIED:修改時間
– DISPLAY_NAME:顯示名稱
– WIDTH:寬度
– HEIGHT:高度
2. MediaStore.Audio:用于存儲音頻文件的相關(guān)信息,包括文件名、路徑、大小、日期、播放時間等。該表的主要字段如下:
– _ID:音頻ID
– _DATA:音頻路徑
– DATE_ADDED:添加時間
– DATE_MODIFIED:修改時間
– DISPLAY_NAME:顯示名稱
– DURATION:持續(xù)時間
– ARTIST:藝術(shù)家
– ALBUM:專輯名稱
– TITLE:標題
3. MediaStore.Video:用于存儲視頻文件的相關(guān)信息,包括文件名、路徑、大小、日期、播放時間等。該表的主要字段如下:
– _ID:視頻ID
– _DATA:視頻路徑
– DATE_ADDED:添加時間
– DATE_MODIFIED:修改時間
– DISPLAY_NAME:顯示名稱
– DURATION:持續(xù)時間
– ARTIST:藝術(shù)家
– ALBUM:專輯名稱
– TITLE:標題
二、使用Android多媒體數(shù)據(jù)庫
在Android應(yīng)用程序中,可以通過Content Provider來調(diào)用Android多媒體數(shù)據(jù)庫。其中,Content Provider是Android中的一個安全機制,允許應(yīng)用程序與其他應(yīng)用程序共享數(shù)據(jù)。
使用多媒體數(shù)據(jù)庫需要先獲取Content Resolver對象,然后通過Content Resolver對象對多媒體庫中的數(shù)據(jù)進行訪問。例如,想查詢多媒體庫中的所有音頻文件,可以使用以下代碼:
“`
ContentResolver resolver = getContentResolver();
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
String[] projection = {
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DISPLAY_NAME,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.SIZE,
MediaStore.Audio.Media.DATA
};
String sortOrder = MediaStore.Audio.Media.TITLE + ” ASC”;
Cursor cursor = resolver.query(uri, projection, null, null, sortOrder);
if (cursor != null && cursor.moveToFirst()) {
//處理查詢結(jié)果
}
if (cursor != null) {
cursor.close();
}
“`
在上面的代碼中,通過getContentResolver()方法獲取Content Resolver對象,MediaStore.Audio.Media.EXTERNAL_CONTENT_URI指定了查詢的URI,projection參數(shù)指定了查詢結(jié)果需要返回的字段,sortOrder參數(shù)指定了排序規(guī)則。查詢得到的結(jié)果存放在游標中,可以通過游標進行處理。
三、擴展Android多媒體庫
在實際應(yīng)用中,可能需要擴展Android多媒體庫的功能,以滿足自己的需求。這可以通過使用Content Provider來實現(xiàn)。
需要定義一個新的Content Provider來管理擴展的數(shù)據(jù)。然后,通過重載Content Provider的query()方法來實現(xiàn)查詢功能。例如,想添加一個名為“mydata”的表來存儲自定義數(shù)據(jù),可以使用以下代碼:
“`
public class MyContentProvider extends ContentProvider {
private static final String AUTHORITY = “com.example.myapp.mycontentprovider”;
private static final String BASE_PATH = “mydata”;
public static final Uri CONTENT_URI =
Uri.parse(“content://” + AUTHORITY + “/” + BASE_PATH);
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query(MySQLiteHelper.TABLE_MYDATA, projection, selection, selectionArgs, null, null, sortOrder);
cursor.setNotificationUri(getContext().getContentResolver(), uri);
return cursor;
}
…
}
“`
在上述代碼中,重載了query()方法,并通過SQLiteDatabase對象查詢自定義數(shù)據(jù),在查詢結(jié)果中設(shè)置了相應(yīng)的通知URI。
然后,在應(yīng)用程序中可以通過Content Resolver查詢自定義數(shù)據(jù),例如:
“`
Uri uri = MyContentProvider.CONTENT_URI;
String[] projection = {…};
String selection = “…”;
String[] selectionArgs = {…};
String sortOrder = “…”;
Cursor cursor = resolver.query(uri, projection, selection, selectionArgs, sortOrder);
“`
在這里,uri指定了查詢的URI,projection指定了查詢結(jié)果需要返回哪些字段,selection和selectionArgs可以指定查詢的條件,sortOrder指定了排序規(guī)則,查詢結(jié)果使用游標進行處理。
四、
Android多媒體數(shù)據(jù)庫是Android系統(tǒng)的一個重要組成部分,能夠方便地管理各種多媒體文件。使用Android多媒體數(shù)據(jù)庫需要獲取Content Resolver對象,并通過該對象訪問多媒體庫中的數(shù)據(jù)。如果需要擴展Android多媒體庫,可以通過Content Provider來實現(xiàn)。通過Content Provider可以方便地管理自定義數(shù)據(jù)。Android多媒體數(shù)據(jù)庫為開發(fā)人員提供了一種方便、快捷的方式來管理多媒體文件,同時也為用戶提供了更加優(yōu)秀的多媒體管理功能。
相關(guān)問題拓展閱讀:
- android 如何獲取保存的圖片的地址 并存到數(shù)據(jù)庫中
- 系統(tǒng)運行庫Android主要包含哪些庫
android 如何獲取保存的圖片的地址 并存到數(shù)據(jù)庫中
數(shù)據(jù)庫是什么玩意,瀏覽器可以復(fù)制圖片地址啊,復(fù)制好了隨便你黏貼在哪里
安卓中如何獲取保存的圖片uri 并保存到sqlite數(shù)據(jù)庫中
有如下兩種方法,僅供參考
方法一:Java代碼
public void saveIcon(Bitmap icon) {
if (icon == null) {
return;
}
// 最終圖標要保存到瀏覽器的內(nèi)部數(shù)據(jù)庫中,系統(tǒng)程序均保存為SQLite格式,Browser也不例外,因為圖片是二進制的所以使用字節(jié)數(shù)組存儲數(shù)據(jù)庫的
// BLOB類型
final ByteArrayOutputStream os = new ByteArrayOutputStream();
// 將Bitmap壓縮成PNG編碼,質(zhì)量為100%存儲
icon.compress(Bitmap.CompressFormat.PNG, 100, os);
// 構(gòu)造SQLite的Content對象,這里也可以使用
raw ContentValues values = new ContentValues();
// 寫入數(shù)據(jù)庫的
Browser.BookmarkColumns.TOUCH_ICON字段 values.put(Browser.BookmarkColumns.TOUCH_ICON, os.toByteArray());
DBUtil.update(….);
//調(diào)用更新或者插入到數(shù)據(jù)庫的方法
}
}
方法二:如果數(shù)據(jù)表入口時一個content:URIJava代碼
import android.provider.MediaStore.Images.Media;
import android.content.ContentValues;
import java.io.OutputStream;
// Save the name and description of an image in a ContentValues map.
ContentValues values = new ContentValues(3);
values.put(Media.DISPLAY_NAME, “road_trip_1”);
values.put(Media.DESCRIPTION, “Day 1, trip to Los Angeles”);
values.put(Media.MIME_TYPE, “image/jpeg”);
// Add a new record without the bitmap, but with the values just set.
// insert() returns the URI of the new record.
Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values);
// Now get a handle to the file for that record, and save the data into it.
// Here, sourceBitmap is a Bitmap object representing the file to save to the database.
try {
OutputStream outStream = getContentResolver().openOutputStream(uri);
sourceBitmap.compress(Bitmap.CompressFormat.JPEG, 50, outStream);
outStream.close();
} catch (Exception e) {
Log.e(TAG, “exception while writing image”, e);
}
原文請看
用這兩個方法應(yīng)該可以滿足你的要求。
方法一:Java代碼 public void saveIcon(Bitmap icon) { if (icon == null) { return; } // 最終圖標要保存到瀏覽器的內(nèi)部數(shù)據(jù)庫中,系統(tǒng)程序均保存為SQLite格式,Browser也不例外,因為圖片是二進制的所以使用字節(jié)數(shù)組存儲數(shù)據(jù)庫的 // BLOB類型 final ByteArrayOutputStream os = new ByteArrayOutputStream(); // 將Bitmap壓縮成PNG編碼,質(zhì)量為100%存儲 icon.compress(Bitmap.CompressFormat.PNG, 100, os); // 構(gòu)造SQLite的Content對象,這里也可以使用raw ContentValues values = new ContentValues(); // 寫入數(shù)據(jù)庫的Browser.BookmarkColumns.TOUCH_ICON字段 values.put(Browser.BookmarkColumns.TOUCH_ICON, os.toByteArray()); DBUtil.update(….);//調(diào)用更新或者插入到數(shù)據(jù)庫的方法 } 方法二:如果數(shù)據(jù)表入口時一個content:URIJava代碼 import android.provider.MediaStore.Images.Media; import android.content.ContentValues; import java.io.OutputStream; // Save the name and description of an image in a ContentValues map. ContentValues values = new ContentValues(3); values.put(Media.DISPLAY_NAME, “road_trip_1”); values.put(Media.DESCRIPTION, “Day 1, trip to Los Angeles”); values.put(Media.MIME_TYPE, “image/jpeg”); // Add a new record without the bitmap, but with the values just set. // insert() returns the URI of the new record. Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values); // Now get a handle to the file for that record, and save the data into it. // Here, sourceBitmap is a Bitmap object representing the file to save to the database. try { OutputStream outStream = getContentResolver().openOutputStream(uri); sourceBitmap.compress(Bitmap.CompressFormat.JPEG, 50, outStream); outStream.close(); } catch (Exception e) { Log.e(TAG, “exception while writing image”, e); }
系統(tǒng)運行庫Android主要包含哪些庫
* Bionic系統(tǒng) C 庫:C語言標準庫,系統(tǒng)更底層的庫,C庫通過Linux系統(tǒng)來調(diào)用。
* 多媒體庫(MediaFramework):Android系統(tǒng)多媒體庫,基于 PacketVideo OpenCORE,該庫支持多種常見格式的音頻、視頻的回放和錄制,以及圖片,比如MPEG4、MP3、AAC、AMR、JPG、PNG等。
* SGL:2D圖形引擎庫。
* SSL:位于TCP/
IP協(xié)議
與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通信提供支持。
* OpenGL ES 1.0:3D效果的支持。
* SQLite:
關(guān)系數(shù)據(jù)庫
。
* Webkit:Web瀏覽器引擎。
* FreeType:位圖(bitmap)及矢量(vector)。
android media數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于android media數(shù)據(jù)庫,Android多媒體數(shù)據(jù)庫詳解,android 如何獲取保存的圖片的地址 并存到數(shù)據(jù)庫中,系統(tǒng)運行庫Android主要包含哪些庫的信息別忘了在本站進行查找喔。
成都網(wǎng)站營銷推廣找創(chuàng)新互聯(lián),全國分站站群網(wǎng)站搭建更好做SEO營銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價格厚道。提供成都服務(wù)器托管租用、綿陽服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽服務(wù)器機房服務(wù)器托管租用。
當前標題:Android多媒體數(shù)據(jù)庫詳解 (android media數(shù)據(jù)庫)
分享路徑:http://www.dlmjj.cn/article/codpgps.html


咨詢
建站咨詢
