精华内容
下载资源
问答
  • 多媒体数据库系统
    千次阅读
    2018-04-25 09:19:07

    一般认为,数据模型化是数据库技术的基础和核心。广义地理解,数据模型化包括了概念模型、逻辑模型和物理模型的建立。其中概念模型是数据库设计者对现实世界的抽象,逻辑 模型是对概念模型的逻辑表示,而物理模型是对逻辑模型的计算机表示。要把复杂的现实世界正确地描述出来,并将其数据及关系在数据库中进行存储和管理,关键的一步是要把现实世界抽象为概念模型。多媒体数据库依托的是多媒体数据模型,首先需要把各种媒体所建立的概念模型结合为一个有机地统一整体,使概念模型一体化,以形成一个“多媒体概念模型”,再以某种符号系统加以表示,形成多媒体数据模型的基础。

    1)多媒体数据模型具有的特性

    x①能支持媒体的独立性。这是因为多媒体数据库的目标应能实现诸如媒体的混合、媒体的扩充、媒体的互换,即应能使用户最大限度地可忽略各媒体间差别,而实现对复杂数据对象的管理和使用。

    ②要支持数据模型的三个基本要素:数据的结构性质,能描述实体及实体间的联系;具有与数据库相关的语义完整性限制;体现数据的操作特性,即要通过对各种媒体的符号化、抽象化,用户可以对各种媒体数据进行统一的处理和一致性管理。对不同内部表示的数据用同样的数据库语言进行操作,并提供能用于多媒体数据库语言接口。

    深圳IT外包   http://www.lankuai.info

    2)实现多媒体数据模型的方法

    ①基于关系数据模型的方法,即在关系数据模型中引入抽象数据类型,并对数据类型定义所必要的数据表示形式及其操作加以扩充。

    ②基于语义数据模型的方法,语义数据模型能提供更具自然的处理现实世界的数据及其联系能力,并在实体类型的表示及其联系上具有特点。当然还有其他的方法,如基于对象的数据建模方法等。目前对多媒体数据模型的研究还还很不充分,仍然缺乏完整的、具有普遍意义的理论。

    更多相关内容
  • 多媒体数据库

    2018-06-23 15:20:41
    问题描述(功能要求): 根据实验指导书要求,完成相关软件系统的设计,要求内容翔实...(3)完成类中各个成员函数的定义; (4)完成系统的应用模块; (5)功能调试; (6)完成系统总结报告以及系统使用说明书。
  • 多媒体数据库的互联机制与策略算法 摘 要多媒体数据库系统是数据库研究领域的热点之一主要...1 多媒体数据库定义 多媒体数据库 MMDB Multimedia Database是由若干多媒体对象所构成的集合 这些数据对象按一定的方式被组
  • 主要分为几节: 1. Android的媒体文件内部是如何存储的?...Android的多媒体文件主要存储在/data/data/com.android.providers.media/databases目录下,该目录下有两个db文件,一个是内部存储数据库文件(internal.

    主要分为几节:
    1. Android的媒体文件内部是如何存储的?
    2. Andoid的媒体文件如何获取?
    3. 在使用媒体文件的一些小技巧。
    4. 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表:主要存储歌手信息。不多赘述。
    其他的一些表格我们平时可能用的比较少,就不做描述了,有兴趣可以自行研究一下。
    2. Android的多媒体如何获取?
    Android提供了媒体获取与存储的相关API,主要包含在android.provider.MediaStorepackage中。
    MediaStore.Audio.AlbumColumns
    Columns representing an album
    MediaStore.Audio.ArtistColumns
    Columns representing an artist
    MediaStore.Audio.AudioColumns
    Columns for audio file that show up in multiple tables.
    MediaStore.Audio.GenresColumns
    Columns representing an audio genre
    MediaStore.Audio.PlaylistsColumns
    Columns representing a playlist
    MediaStore.Files.FileColumns
    Fields for master table for all media files.
    MediaStore.Images.ImageColumns
    MediaStore.MediaColumns
    Common fields for most MediaProvider tables
    MediaStore.Video.VideoColumns
    MediaStore
    The Media provider contains meta data for all available media on both internal and external storage devices.
    MediaStore.Audio
    Container for all audio content.
    MediaStore.Audio.Albums
    Contains artists for audio files
    MediaStore.Audio.Artists
    Contains artists for audio files
    MediaStore.Audio.Artists.Albums
    Sub-directory of each artist containing all albums on which a song by the artist appears.
    MediaStore.Audio.Genres
    Contains all genres for audio files
    MediaStore.Audio.Genres.Members
    Sub-directory of each genre containing all members.
    MediaStore.Audio.Media
    MediaStore.Audio.Playlists
    Contains playlists for audio files
    MediaStore.Audio.Playlists.Members
    Sub-directory of each playlist containing all members.
    MediaStore.Files
    Media provider table containing an index of all files in the media storage, including non-media files.
    MediaStore.Images
    Contains meta data for all available images.
    MediaStore.Images.Media
    MediaStore.Images.Thumbnails
    This class allows developers to query and get two kinds of thumbnails: MINI_KIND: 512 x 384 thumbnail MICRO_KIND: 96 x 96 thumbnail
    MediaStore.Video
    MediaStore.Video.Media
    MediaStore.Video.Thumbnails
    This class allows developers to query and get two kinds of thumbnails: MINI_KIND: 512 x 384 thumbnail MICRO_KIND: 96 x 96 thumbnail
    简单的观察一下,发现这些类也就是对数据库中的一些表的封装,弄懂了底层的存储结构,对于了解这些类的作用就很容易了。
    Android系统中的每一种媒体文件有两种地址描述方式。
    第一种模式,大家知道,在Android中,Content Provider是用来存储和获取公共数据的统一接口,Content Provider为每一类资源分配了URI地址,比如图片的地址就包括MediaStore.Images.Media.INTERNAL_CONTENT_URI和MediaStore.Images.Media.EXTERNAL_CONTENT_URI两个基础地址,其值分别是content://media/internal/images/media和content://media/external/images/media,对应内部库和外部库地址。每一张图片的地址基本上是上面的基础URL地址下加上图片的内部ID。打个比方一张存储卡上的图片ID为2,其对应的Uri地址就是content://media/external/images/media/2.知道了这个地址,基本上就可以操作这张图片的所有信息了。
    另外一种描述文件地址标识就是传统的文件路径模式了,比如一张存储卡上的图片地址可能描述为:/mnt/sdcard/images/1.jpg。其实这个路径存储在images表格中的data字段中,有了这点关联,我们可以在这两种模式下进行任意切换。
    前一种模式下,主要通过MediaStore.Images.Media、MediaStore.Audio.Media、MediaStore.Video.Media三个库中的query方法来查询或者获取特定条件的媒体了。
    基本用法1:从一个Content Uri地址中生成Bitmap
    可以采用android.provider.MediaStore.Images.Media.getBitmap(ContentResolvercr,Uriurl)方法,其中ContentResolver是应用与资源之间的衔接人,它的示例通常可以通过在Activity中调用的getContentResolver()方法中获取。Uri地址就是上面描述的content://media/external/images/media/2类似地址,也就是Content Provider定义的地址形式。
    基本用法2:从一个传统地址中生成Bitmap
    有时候我们只知道一张图片的路径,并不知道图片的内部地址,想去获取该图片,可以采用android.graphics.BitmapFactory中的decodeXXX方法来搞定,比如decodeFile方法就是从文件路径中读取图片,原图片可以支持jpg,png,gif,bmp等各种格式。decodeByteArray就是从字节流中解码了。最后都是转换成Bitmap格式。
    基本用法3:获取一张图片的缩略图
    有时候我们需要显示图片的缩略图,可以采用android.provider.MediaStore.Images.Thumbnails的getThumbnail方法。另外其实也可以采用bitmap的compress的方法对图片进行一些压缩处理。

    展开全文
  • Android多媒体相关的数据都存放在/data/data/com.android.providers.media/文件夹里的external.db和internal.db数据库里,二者的区别主要是前者是针对放在SDCard外部存储多媒体,后者主要针对放在手机本地存储里的...

    前言

    Android多媒体相关的数据都存放在/data/data/com.android.providers.media/文件夹里的external.db和internal.db数据库里,二者的区别主要是前者是针对放在SDCard外部存储多媒体,后者主要针对放在手机本地存储里的多媒体资源。Android 6.0里两个数据库里的数据库表和表结构基本一致,这里只分析external中的表结构。

    多媒体资源主要分为三大类图片、视频和音频,其中图片和视频都有缩略图资源,它们都是以文件的形式存在于Android系统中的。这些多媒体文件相关的信息会被记录在一个FILES数据库表中,为了能够更方便的查看不同类型的资源,数据库分别为图片视频和音频增加了视图对象。下面来逐个查看每个表和视图的生成DDL,了解每个字段的类型和用途。

    文件数据表

    数据表的创建DDL如下,可见每个字段都以下划线“_”开头:

    CREATE TABLE "files" (
        _id INTEGER PRIMARY KEY AUTOINCREMENT, // 文件的id,从1开始逐渐增加
        _data TEXT UNIQUE COLLATE NOCASE, // 数据,实际是文件的保存路径
        _size INTEGER, // 多媒体文件的大小
        format INTEGER, // 多媒体文件类型
        parent INTEGER, // 父文件夹的id
        date_added INTEGER, // 多媒体文件添加时间
        date_modified INTEGER, // 多媒体文件修改时间
        mime_type TEXT, // 文件的媒体类型
        title TEXT, // 不带扩展名的文件名
        description TEXT, // 文件描述
        _display_name TEXT, // 带扩展名的文件名
        picasa_id TEXT, // ?
        orientation INTEGER, // 取自EXIF旋转角度,在图库旋转图片也会改变此值
        latitude DOUBLE, // 拍摄位置经纬度
        longitude DOUBLE,
        datetaken INTEGER, // 取自EXIF照片拍摄时间,若为空则等于文件修改时间,单位毫秒
        mini_thumb_magic INTEGER, // 取小缩略图时生成的一个随机数,见 MediaThumbRequest
        bucket_id TEXT, // 包含多媒体文件的bucket id 等于 path.toLowerCase.hashCode(),见 MediaProvider.computeBucketValues()
        bucket_display_name TEXT, // 直接包含图片的文件夹就是该图片的 bucket,就是文件夹名
        isprivate INTEGER,
        title_key TEXT,
        artist_id INTEGER, // 艺术家id,有一个艺术家表
        album_id INTEGER, // 专辑id,有一个专辑表
        composer TEXT, // 作曲者
        track INTEGER, // 音轨
        year INTEGER CHECK(year!=0), // 年代
        is_ringtone INTEGER, // 是否是铃声
        is_music INTEGER, // 是否是音乐
        is_alarm INTEGER, // 是不是闹钟铃声
        is_notification INTEGER, // 是不是通知铃声
        is_podcast INTEGER,
        album_artist TEXT, // 专辑艺术家
        duration INTEGER, // 持续时间
        bookmark INTEGER, 
        artist TEXT, // 艺术家展示名
        album TEXT, // 专辑展示名
        resolution TEXT, // 解析度
        tags TEXT, // 标签
        category TEXT, // 分类
        language TEXT, // 语言
        mini_thumb_data TEXT, 
        name TEXT,
        media_type INTEGER,
        old_id INTEGER,
        storage_id INTEGER,
        is_drm INTEGER,
        width INTEGER,  // 宽高信息
        height INTEGER);

    从FILES表的字段可以看出,它包含了所有的图片、视频和音频文件信息,文件表记录了具体的文件路径和基本信息,其他Images等视图只需要连表查询就可以得到对应数据。

    下面是在文件表上创建的索引对象,在查询使用到索引定义的字段时可以加快查询速度。

    CREATE INDEX album_id_idx ON files(album_id);
    
    CREATE INDEX artist_id_idx ON files(artist_id);
    
    CREATE INDEX bucket_index on files(bucket_id,media_type,datetaken, _id);
    
    CREATE INDEX bucket_name on files(bucket_id,media_type,bucket_display_name);
    
    CREATE INDEX format_index ON files(format);
    
    CREATE INDEX media_type_index ON files(media_type);
    
    CREATE INDEX parent_index ON files(parent);
    
    CREATE INDEX path_index ON files(_data);
    
    CREATE INDEX sort_index ON files(datetaken ASC, _id ASC);
    
    CREATE INDEX title_idx ON files(title);
    
    CREATE INDEX titlekey_index ON files(title_key);

    最后是触发器对象:

    CREATE TRIGGER audio_playlists_cleanup DELETE ON files WHEN old.media_type=4 BEGIN DELETE FROM audio_playlists_map WHERE playlist_id = old._id;SELECT _DELETE_FILE(old._data);END;
    
    CREATE TRIGGER files_cleanup DELETE ON files BEGIN SELECT _OBJECT_REMOVED(old._id);END;

    图片资源

    图片Images是一个视图对象,创建的DDL如下:

    CREATE VIEW images AS 
        SELECT 
        _id, // 图片id
        _data, // 图片路径
        _size, // 图片大小
        _display_name, // 待扩展名的文件名
        mime_type, // 多媒体类型
        title, // 不带扩展名的文件类型
        date_added, // 图片添加时间
        date_modified, // 图片修改时间
        description, // 图片描述
        picasa_id, 
        isprivate,
        latitude, // EXIF里的经纬度
        longitude,
        datetaken, // EXIF里的日期
        orientation, // EXIF里的方向
        mini_thumb_magic, // 
        bucket_id, // 图片集id
        bucket_display_name, // 图片集名称
        width, // 图片宽高信息
        height  
        FROM files // 从文件表中查找media_type为1的记录就是图片多媒体资源 
        WHERE media_type=1;

    可见Image视图所有的字段都取自files表,和图片相关的表还有一个ImageThumbnail图片缩略图表,它的DDL如下:

    CREATE TABLE thumbnails (
        _id INTEGER PRIMARY KEY, // 缩略图id,从0开始组件增大
        _data TEXT, // 缩略图路径
        image_id INTEGER, // 缩略图对应的图片id
        kind INTEGER, // 缩略图类型缩略图类型,1 是大缩略图,2 基本不用,3 是微型缩略图但其信息不保存在数据库
        width INTEGER, // 缩略图宽高
        height INTEGER);
    
    CREATE INDEX image_id_index on thumbnails(image_id);
    

    因为大部分情况下是根据图片id查询对应的缩略图资源,在image_id上创建了索引对象加速查找。

    视频资源

    CREATE VIEW video AS 
        SELECT 
        _id, // 视频的id
        _data, // 视频的路径
        _display_name, // 不带扩展名的文件名
        _size, // 视频大小
        mime_type,
        date_added,
        date_modified,
        title,
        duration,
        artist,
        album,
        resolution, // 解析度
        description,
        isprivate,
        tags,
        category,
        language,
        mini_thumb_data,
        latitude,
        longitude,
        datetaken,
        mini_thumb_magic,
        bucket_id,
        bucket_display_name,
        bookmark,
        width,
        height 
    FROM files 
    WHERE media_type=3;

    视频所有的字段都从files表里取,只不过视频的media_type是3。除了视频的视图之外还有一个视频缩略图表:

    CREATE TABLE videothumbnails (
        _id INTEGER PRIMARY KEY, // 缩略图id
        _data TEXT, // 缩略图路径
        video_id INTEGER, // 缩略图对应的视频
        kind INTEGER, // 缩略图类型
        width INTEGER, // 缩略图宽高
        height INTEGER);
    
    CREATE INDEX video_id_index on videothumbnails(video_id);

    视频缩略图表和图片缩略图表基本上一致不再赘述。

    音频资源

    音频audio_meta视图的DDL对应如下:

    CREATE VIEW audio_meta AS 
        SELECT 
            _id, // 音频id
            _data, // 音频文件路径
            _display_name, // 音频文件名不带扩展名
            _size, // 音频文件大小
            mime_type,
            date_added,
            is_drm,
            date_modified,
            title,
            title_key,
            duration,
            artist_id,
            composer,
            album_id,
            track,
            year,
            is_ringtone,
            is_music,
            is_alarm,
            is_notification,
            is_podcast,
            bookmark,
            album_artist 
        FROM files 
        WHERE media_type=2;

    所有media_type为2的文件表记录就是音频文件。

    再看艺术家和专辑两个表:

    CREATE TABLE artists (
        artist_id INTEGER PRIMARY KEY, // 艺术家id
        artist_key TEXT NOT NULL UNIQUE, // 全大写字母,用于字母索引
        artist TEXT NOT NULL // 艺术家名称
    );
    
    CREATE INDEX artistkey_index on artists(artist_key);
    CREATE INDEX artist_idx on artists(artist);
    
    
    CREATE TABLE albums (
        album_id INTEGER PRIMARY KEY, // 专辑id
        album_key TEXT NOT NULL UNIQUE, // 全大写字母,用于字母索引
        album TEXT NOT NULL // 专辑名称
    );
    
    CREATE TRIGGER albumart_cleanup1 DELETE ON albums BEGIN DELETE FROM album_art WHERE album_id = old.album_id;END;
    
    CREATE INDEX albumkey_index on albums(album_key);
    CREATE INDEX album_idx on albums(album);

    音频视图需要file表、artist表和album表联合查询,这样艺术家和专辑信息都会被包含在内。

    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;
    展开全文
  • 数据库快照定义语句 数据库快照删除语句 第章数据查询语句和全文检索语句 单表查询 简单查询 带条件查询 集函数 情况表达式 连接查询 子查询 标量子查询 表子查询 派生表子查询 定量比较 带 谓词的子...
  • Android多媒体数据库详解

    千次阅读 2013-06-19 16:46:55
    主要分为几节: 1. Android的媒体文件内部是如何存储的?...Android的多媒体文件主要存储在/data/data/com.android.providers.media/databases目录下,该目录下有两个db文件,一个是内部存储数据库文件(internal

    主要分为几节:

    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表:主要存储歌手信息。不多赘述。

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

    2. Android的多媒体如何获取?

    Android提供了媒体获取与存储的相关API,主要包含在android.provider.MediaStorepackage中。

    MediaStore.Audio.AlbumColumns

    Columns representing an album

    MediaStore.Audio.ArtistColumns

    Columns representing an artist

    MediaStore.Audio.AudioColumns

    Columns for audio file that show up in multiple tables.

    MediaStore.Audio.GenresColumns

    Columns representing an audio genre

    MediaStore.Audio.PlaylistsColumns

    Columns representing a playlist

    MediaStore.Files.FileColumns

    Fields for master table for all media files.

    MediaStore.Images.ImageColumns

    MediaStore.MediaColumns

    Common fields for most MediaProvider tables

    MediaStore.Video.VideoColumns

    MediaStore

    The Media provider contains meta data for all available media on both internal and external storage devices.

    MediaStore.Audio

    Container for all audio content.

    MediaStore.Audio.Albums

    Contains artists for audio files

    MediaStore.Audio.Artists

    Contains artists for audio files

    MediaStore.Audio.Artists.Albums

    Sub-directory of each artist containing all albums on which a song by the artist appears.

    MediaStore.Audio.Genres

    Contains all genres for audio files

    MediaStore.Audio.Genres.Members

    Sub-directory of each genre containing all members.

    MediaStore.Audio.Media

    MediaStore.Audio.Playlists

    Contains playlists for audio files

    MediaStore.Audio.Playlists.Members

    Sub-directory of each playlist containing all members.

    MediaStore.Files

    Media provider table containing an index of all files in the media storage, including non-media files.

    MediaStore.Images

    Contains meta data for all available images.

    MediaStore.Images.Media

    MediaStore.Images.Thumbnails

    This class allows developers to query and get two kinds of thumbnails: MINI_KIND: 512 x 384 thumbnail MICRO_KIND: 96 x 96 thumbnail

    MediaStore.Video

    MediaStore.Video.Media

    MediaStore.Video.Thumbnails

    This class allows developers to query and get two kinds of thumbnails: MINI_KIND: 512 x 384 thumbnail MICRO_KIND: 96 x 96 thumbnail

    简单的观察一下,发现这些类也就是对数据库中的一些表的封装,弄懂了底层的存储结构,对于了解这些类的作用就很容易了。

    Android系统中的每一种媒体文件有两种地址描述方式。

    第一种模式,大家知道,在Android中,Content Provider是用来存储和获取公共数据的统一接口,Content Provider为每一类资源分配了URI地址,比如图片的地址就包括MediaStore.Images.Media.INTERNAL_CONTENT_URI和MediaStore.Images.Media.EXTERNAL_CONTENT_URI两个基础地址,其值分别是content://media/internal/images/mediacontent://media/external/images/media,对应内部库和外部库地址。每一张图片的地址基本上是上面的基础URL地址下加上图片的内部ID。打个比方一张存储卡上的图片ID为2,其对应的Uri地址就是content://media/external/images/media/2.知道了这个地址,基本上就可以操作这张图片的所有信息了。

    另外一种描述文件地址标识就是传统的文件路径模式了,比如一张存储卡上的图片地址可能描述为:/mnt/sdcard/images/1.jpg。其实这个路径存储在images表格中的data字段中,有了这点关联,我们可以在这两种模式下进行任意切换。

    前一种模式下,主要通过MediaStore.Images.Media、MediaStore.Audio.Media、MediaStore.Video.Media三个库中的query方法来查询或者获取特定条件的媒体了。

    基本用法1:从一个Content Uri地址中生成Bitmap

    可以采用android.provider.MediaStore.Images.Media.getBitmap(ContentResolver cr, Uri url)方法,其中ContentResolver是应用与资源之间的衔接人,它的示例通常可以通过在Activity中调用的getContentResolver()方法中获取。Uri地址就是上面描述的content://media/external/images/media/2类似地址,也就是Content Provider定义的地址形式。

    基本用法2:从一个传统地址中生成Bitmap

    有时候我们只知道一张图片的路径,并不知道图片的内部地址,想去获取该图片,可以采用android.graphics.BitmapFactory中的decodeXXX方法来搞定,比如decodeFile方法就是从文件路径中读取图片,原图片可以支持jpg,png,gif,bmp等各种格式。decodeByteArray就是从字节流中解码了。最后都是转换成Bitmap格式。

    基本用法3:获取一张图片的缩略图

    有时候我们需要显示图片的缩略图,可以采用android.provider.MediaStore.Images.ThumbnailsgetThumbnail方法。另外其实也可以采用bitmapcompress的方法对图片进行一些压缩处理。

    展开全文
  • 多媒体数据时达到了四个一体化:一体化定义、一体化存储、一体化检索、一体化处理,最大限 度地提高了数据库管理系统处理多媒体的能力和速度; 2. DM_SQL 语言集数据库定义、查询、更新、控制、维护、恢复、安全...
  • 四、日期类型 DATE类型:包括年、月、日信息,定义了‘-4712-01-01’和‘9999-12-31’之间任何一个有效的格里高利日期。 TIME类型:包括时、分、秒信息。 TIMESTAMP/DATATIME:包括年、月、日、时、分、秒信息。 ...
  • 第一部分 数据库系统概述 (一)、考核内容 (1) 数据库系统的基本概念 (2) 数据描述与数据模型、关系模型 (3) 数据库系统内部体系结构 (二)、考核要求 (1)了解数据库数据库管理系统、数据库应用系统的概念。 (2)...
  • 数据库系统原理】 数据库系统概述基本概念

    千次阅读 热门讨论 2021-03-04 22:40:56
    2.数据库定义 (2)数据库的特点 (3)数据库的操作 1.数据库的基本操作 2.实际应用对数据操作的要求 三、数据库管理系统 (1)数据库管理系统的定义 (2)数据库管理系统的主要功能 四、数据库系统 (1)数据库系统的组成 ...
  • 1.数据库(Database)的由来 (1)数据具有分散性。 (2)数据的发布者(源头),数据的使用者(用户)是一种一对多的关系。 问题: a.发布者:更新费时费力,数据不一致; b.使用者:可靠性问题。 2.数据库概念 ...
  • 在安卓多媒体数据库中,扫描存进去的文件的mime type属性是在哪里定义写入的?比如音乐的![图片说明](https://img-ask.csdn.net/upload/201507/22/1437547345_443382.png)求高人解答!
  • 实时数据库与时序数据库

    千次阅读 多人点赞 2020-11-18 10:40:39
    在工业大数据数据库存储领域,除了传统的关系型数据库和分布式数据库以外,还有一种类型的数据库是非常常用,而且是非常有必要的,就是实时数据库,以及时序数据库。 但是,大家可能会有疑问,都是专门处理时序数据...
  • 1.4 高级数据库系统

    2021-06-02 23:36:23
    常用的高级数据库系统主要有分布式数据库系统、面向对象数据库系统、并行数据库系统和多媒体数据库系统。 1.分布式数据库系统 1.1 分布式数据库系统的概念 分布式数据库由一组数据组成,这组数据分布在计算机网络的...
  • 数据库学习笔记

    千次阅读 2022-03-08 10:23:20
    文章导航数据库系统概述数据数据管理数据库数据模型数据库系统结构DBMS数据模型基础概念E(ntity)-R(elationship)概念模型(基础)基本概念E-R数据模型层次数据模型网状数据模型关系数据模型(主流)面向对象数据模型...
  • 数据库管理系统

    千次阅读 2021-05-06 01:35:59
    数据库管理系统(Database Management System,DBMS),有时也被称为数据库管理器(Database Manager)[编辑]什么是数据库管理系统数据库管理系统(Database Management System,DBMS)是一种操纵和管理数据库的大型软件,...
  • CO1:掌握数据库系统基本概念、数据模型原理、数据库编程语言、数据库系统管理、NoSQL数据库技术原理等基础知识。 CO2:掌握数据库建模设计技术,能够给出数据库的优化设计方案,培养数据库设计能力。 CO3:掌握数据库...
  • 关系型数据库的发展历史

    千次阅读 2019-03-12 23:15:03
    数据库发展史 信息系统产生了海量的数据,有数据必须要有数据的存放位置, 无库时代 :没有专门的数据库,数据大多以文件形式存放 层次状数据库 :使用层次状模型进行数据库设计和存放 网状数据库 :使用网状...
  • 数据库内核讲解-(一)数据库系统概述

    千次阅读 多人点赞 2020-09-18 14:46:47
    下面用问题的形式来回答一下一些数据库基本概念的定义: 什么是数据? 按照百度百科的词条定义: 数据就是数值,也就是我们通过观察、实验或计算得出的结果。数据有很多种,最简单的就是数字。数据也可以是文字...
  • MediaStore提供了对数据库管理的对应信息,并且封装了相关的方法方便上层调用。路径如下: /frameworks/base/core/java/android/provider/ MediaStore.java (The Media provider contains meta data for all ...
  • vb.net绘制生成曲线,数据从access数据库中读取,然后将数据进行简要处理后,传送给曲线生成函数,生成适时的数据曲线。  请注意:vb.net里PICTURE只支持像素,长度比较大,需要乘除定义精确值,8当余数为1,则刚好...
  • 数据库基础知识大全

    2020-09-01 10:21:44
    在大数据、云计算等概念被广泛提及的今天,数据库作为入门知识,它的重要性想必大家都知道了,今天小编为大家整理了一些数据库的基础知识,快快收藏吧~ 目录: 一、基本概念 二、数据库分类 三、数据库模型 ...
  • 本人在备战数据库系统工程师的考试,把刷历年真题碰到的知识点记录在这边。(目录是第三版教程)
  • 第1章 绪论 1.1 媒体概述 1.1.1 媒体的定义 1.1.2 常见媒体 1.2 多媒体与多媒体技术 1.2.1 多媒体概念 1.2.2 多媒体技术 1.2.3 多媒体技术的发展 ...第8章 多媒体数据库编程 附录 上机实验 参考文献
  • 数据库题目之绪论

    2019-01-10 15:06:04
    1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段中,数据独立性最高的是 阶段。  A.数据库系统 B.文件系统 C.人工管理 D.数据项管理 【答案:】A 2....
  • 软考中级——数据库系统工程师

    千次阅读 2020-11-01 18:13:12
    第6章 数据库技术基础 1.基本概念 1.1数据库数据库管理系统 1.1.1数据库系统基本概念 数据库系统(DataBase System,DBS):采用了数据库技术,有组织地、动态地存储大量相关联数据,方便多用户访问的计算机系统。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,634
精华内容 11,853
关键字:

多媒体数据库定义

友情链接: 07代理模式.rar