Android媒体的一些使用总结

主要分为几节:

1. Android的媒体文件内部是如何存储的?

2. Andoid的媒体文件如何获取?

3. 在使用媒体文件的一些小技巧。

 

 1.       Android的多媒体如何存储的?

Android的多媒体文件主要存储在/data/data/com.android.providers.media/databases目录下,该目录下有两个db文件,一个是内部存储数据库文件(internal.db),一个是存储卡数据库(external-XXXX.db)。媒体文件的操作主要是围绕着这两个数据库来进行。这两个数据库的结构是完全一模一样的。

我们先看一下这两个数据库包含了哪些表。

album_art            audio                search

album_info           audio_genres         searchhelpertitle

albums               audio_genres_map     thumbnails

android_metadata     audio_meta           video

artist_info          audio_playlists      videothumbnails

artists              audio_playlists_map

artists_albums_map   images

先从基本的分析:

Images表:主要存储images信息。可以看一下这个表的结构:

CREATE TABLE images (_id INTEGER PRIMARY KEY,_data TEXT,_size INTEGER,_display_name TEXT,mime_type TEXT,title

TEXT,date_added INTEGER,date_modified INTEGER,description TEXT,picasa_id TEXT,isprivate INTEGER,latitude DOUBL

E,longitude DOUBLE,datetaken INTEGER,orientation INTEGER,mini_thumb_magic INTEGER,bucket_id TEXT,bucket_displa

y_name TEXT);

包含了一些基本信息,其中大家一看就明白了。

Thumbnails表:这个表和images表是有直接关系的。主要存储图片的缩略图,Android为每一张保存进系统的图片文件都会自动生成一张缩略图文件。关于这一点还有一些特殊的技巧后面再讲。我们可以看一下这个表的结构:

CREATE TABLE thumbnails (_id INTEGER PRIMARY KEY,_data TEXT,image_id INTEGER,kind INTEGER,width INTEGER,height  INTEGER);

每一张image对应一条thumbnail记录。

Video表:主要存储视频信息了。和images表类似。表结构如下:

CREATE TABLE video (_id INTEGER PRIMARY KEY,_data TEXT NOT NULL,_display_name TEXT,_size INTEGER,mime_type TEXT,date_added INTEGER,date_modified INTEGER,title TEXT,duration INTEGER,artist TEXT,album TEXT,resolution TEXT,description TEXT,isprivate INTEGER,tags TEXT,category TEXT,language TEXT,mini_thumb_data TEXT,latitude DOUBLE,longitude DOUBLE,datetaken INTEGER,mini_thumb_magic INTEGER, bucket_id TEXT, bucket_display_name TEXT, bookmark INTEGER);

Videothumbnails表:存储视频的缩略图信息。这个和thumbnails表类似。

Audio表:音频信息比视频信息和图片信息要稍微复杂一些,主要是存储了一些专辑(album)、歌手(artists)信息,而专辑和歌手信息是单独的表格存储的,audio其实是一个视图,真正的音频数据信息存储在audio_meta表格中。我们可以看一下audio视图的定义:

CREATE VIEW audio as SELECT * FROM audio_meta LEFT OUTER JOIN artists ON audio_meta.artist_id=artists.artist_id LEFT OUTER JOIN albums ON audio_meta.album_id=albums.album_id;

Albums表:主要存储专辑信息。

Artists表:主要存储歌手信息。不多赘述。

其他的一些表格我们平时可能用的比较少,就不做描述了,有兴趣可以自行研究一下。

 

(未完待续)

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值