`

Android平台中应该如何获取音乐文件的信息

 
阅读更多
Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格,通过Content Provider的方式提供给用户。当手机开机或者有SD卡插拔等事件发生时,系统将会自动扫描SD卡和手机内存上的媒体文件,如audio,video,图片等,将相应的信息放到定义好的数据库表格中。在这个程序中,我们不需要关心如何去扫描手机中的文件,只要了解如何查询和使用这些信息就可以了。
  MediaStore中定义了一系列的数据表格,通过ContentResolver提供的查询接口,我们可以得到各种需要的信息。下面我们重点介绍查询SD卡上的音乐文件信息。
  先来了解一下ContentResolver的查询接口:
Cursor  query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder);  

        Uri:指明要查询的数据库名称加上表的名称,从MediaStore中我们可以找到相应信息的参数,具体请参考开发文档。
        Projection: 指定查询数据库表中的哪几列,返回的游标中将包括相应的信息。Null则返回所有信息。
        selection: 指定查询条件
        selectionArgs:参数selection里有 ?这个符号是,这里可以以实际值代替这个问号。如果selection这个没有?的话,那么这个String数组可以为null。
        SortOrder:指定查询结果的排列顺序
下面的命令将返回所有在外部存储卡上的音乐文件的信息:

Cursor cursor = query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null,null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);  


得到cursor后,我们可以调用Cursor的相关方法具体的音乐信息:

//歌曲ID:MediaStore.Audio.Media._ID 
  Int id = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));  
    
//歌曲的名称 :MediaStore.Audio.Media.TITLE 
  String tilte = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));  
  
//歌曲的专辑名:MediaStore.Audio.Media.ALBUM 
  String album = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));  
      
//歌曲的歌手名: MediaStore.Audio.Media.ARTIST 
  String artist = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));  
    
//歌曲文件的路径 :MediaStore.Audio.Media.DATA 
  String url = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));  
    
//歌曲的总播放时长 :MediaStore.Audio.Media.DURATION 
  Int duration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));  
    
//歌曲文件的大小 :MediaStore.Audio.Media.SIZE 
  Int size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE));  
分享到:
评论

相关推荐

    Android 获取音乐文件的信息

    Android 获取音乐文件的信息 Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格,通过Content Provider的方式提供给用户。

    android通过java获取音乐文件信息

    在Android平台上,获取音乐文件的信息是一项常见的任务,尤其对于音乐播放器或者音乐管理类的应用来说。这个过程通常涉及到解析音频文件的元数据,包括艺术家、曲目标题、专辑、时长等。本教程将深入讲解如何使用...

    android读取sd卡中音乐文件列表

    ### Android读取SD卡中音乐文件列表 在Android开发中,常常需要实现的功能之一就是读取设备中的音乐文件。这通常用于音乐播放器类的应用程序,以便用户可以浏览并选择他们想要播放的歌曲。本文将详细介绍如何通过...

    Android中通过MediaStore获取音乐文件信息方法

    在Android开发中,获取音乐文件信息是常见的需求,MediaStore是一个关键组件,它提供了一个统一的接口,让我们能够轻松地访问设备上的音频、视频和图片等多媒体数据。本篇文章将详细解析如何通过MediaStore获取音乐...

    Android扫描音乐文件

    开发者需要通过`Environment.getExternalStorageDirectory()`获取外部存储路径,然后遍历对应目录寻找音乐文件。 2. **媒体扫描**:Android提供了`MediaScannerConnection`类用于扫描新的或已修改的媒体文件,并将...

    android应用播放raw文件中的音乐

    要播放RAW文件中的音乐,你需要遵循以下步骤: 1. **添加音频资源**:首先,将RAW格式的音频文件放入项目的`res/raw`目录下。例如,如果你有一个名为`my_music.raw`的文件,它应该位于`res/raw/my_music.raw`。 2....

    android读取sd卡中MP3文件

    在Android平台上,开发人员经常需要处理与媒体文件交互的任务,比如读取SD卡中的MP3音乐文件。这个过程涉及到文件系统的操作、权限管理以及多媒体数据的处理。以下是一些关于如何在Android中读取SD卡中MP3文件的关键...

    Android音乐播放器(含notification通知栏操作,自动获取本地音乐操作)

    本项目"Android音乐播放器(含notification通知栏操作,自动获取本地音乐操作)"旨在教授如何构建一个具备通知栏控制功能并能自动扫描本地音乐库的播放器。以下是关于这个项目的关键知识点: 1. **通知栏操作...

    一个Android获取mp3封面图片的小例子

    在你的`build.gradle`文件中添加依赖: ```gradle implementation 'com.github.hooleg:taglib-android:1.2.0' ``` 这将允许你在项目中使用taglib库。 2. **读取MP3文件** 首先,你需要创建一个`File`对象指向...

    android 获取音频的频谱

    在Android平台上,获取音频的频谱是一项常见的任务,特别是在音乐应用、声音分析或者音效处理等领域。本节将深入探讨如何使用Android的音频API来提取音乐频谱源码,并了解相关技术。 首先,我们需要理解频谱的概念...

    Android简易本地音乐播放器源码,基于Android的简易本地音乐播放器源码

    5. **文件遍历与选择**:为了找到并播放本地音乐,源码可能包含了读取设备存储上的音乐文件(通常位于外部存储的Music目录),这需要使用到文件I/O操作和文件遍历的技巧。 6. **ListView或RecyclerView**:为了展示...

    基于Android Studio开发的音乐播放器APP源码Android 音乐播放器源码

    开发者可能使用MediaStore类来获取设备上的媒体文件信息,包括音乐文件的路径、时长、艺术家等元数据。 4. **用户界面设计**: 应用的界面设计是用户体验的关键。Android Studio的布局编辑器可以帮助创建XML布局...

    Android应用源码可以按音乐视频图片分类浏览的安卓文件浏览器

    在Android平台上,开发一个文件浏览器是一项常见的任务,尤其当需求是使用户能够按特定类别(如音乐、视频、图片)来浏览文件时,这样的应用程序能提供更直观且友好的用户体验。本项目的核心就是实现这样一个分类...

    Android代码-音乐频谱波形图生成

    1. **读取音频数据**:使用`MediaExtractor`类从音频文件中提取出原始的PCM数据,这通常涉及设置媒体格式、选择轨道以及提取缓冲区数据。 2. **数据处理**:获取到PCM数据后,将其分帧,并使用FFT进行变换。FFT的...

    Android sd卡音频文件列表显示+歌曲播放

    在Android平台上,开发一个能列出SD卡上所有音乐文件并实现播放功能的应用是常见的需求。这个"Android sd卡音频文件列表显示+歌曲播放"的Demo就是为此目的设计的。它结合了文件系统操作、UI设计以及媒体播放技术,是...

    Android 9 添加开机音乐

    选择一首你喜欢的音乐文件,格式最好是MP3或AAC,因为这些格式在Android系统中广泛支持。确保音乐文件大小适中,以免延长开机时间。 步骤三:创建自启动服务 创建一个Android服务应用,该服务会在系统启动时自动...

    android平台的音乐播放器源码

    源码可能包含对SD卡或内部存储中的音乐文件的遍历和加载逻辑,以及创建和管理播放列表的机制。 3. **服务(Service)**:为了在后台持续播放音乐,开发者会使用`Service`。即使用户离开应用程序,服务也可以保持...

Global site tag (gtag.js) - Google Analytics