`
herestay
  • 浏览: 36158 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android入门:使用Android自带媒体库读取MP3文件

阅读更多

今天研究了下如何在Android读取SD卡中的媒体文件(MP3),开始的思路是遍历SD卡所有目录,相信这也是所有开发者第一会想到的思路,无法就是遍历所有文件,将所有后缀名为.mp3读取出来;但是最后发现,如果你对Android稍有了解,你会发现,其实媒体扫描这个工作,Android设置已经替我们干了,Android系统会在SD卡有更新的时候自动将SD卡文件分类(视频/音频/图片...),并存入SQLite数据库,就保存在媒体存储器里面(com.android.providers.media),下面代码是从媒体存储器里面读取MP3文件的方法:

 

 

public ArrayList<HashMap<String,Object>> scanAllAudioFiles(){
			//生成动态数组,并且转载数据  
			    ArrayList<HashMap<String,Object>> mylist = newArrayList<HashMap<String,Object>>();  
			//查询媒体数据库
			Cursor cursor =getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
			//遍历媒体数据库
			if(cursor.moveToFirst()){
			 
			      while (!cursor.isAfterLast()){ 
			      
			       //歌曲编号
			       int id =cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID)); 
			       //歌曲标题
			       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
			       Long size =cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE));
			      
			       if(size>1024*800){//大于800K
			       HashMap<String,Object> map = new HashMap<String,Object>();
			       map.put("musicId", id);  
			       map.put("musicTitle", tilte); 
			       map.put("musicFileUrl",url); 
			         map.put("music_file_name", tilte); 
			         mylist.add(map);  
			       }
			       cursor.moveToNext(); 
			      } 
			      }
			return mylist;
			}



分享到:
评论

相关推荐

    android读取sd卡中MP3文件

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

    Android Studio:Google 官方提供的安卓开发集成开发环境(IDE) Android SDK:安卓操作系统的软

    Android Studio:Google 官方提供的安卓开发集成开发环境(IDE)。 Android SDK:安卓操作系统的软件开发 kit,提供了开发安卓应用程序所需的工具和资源。 Android NDK:安卓操作系统的 Native Development Kit,...

    android媒体库使用demo及相关工具

    这个"android媒体库使用demo及相关工具"的资源提供了关于如何利用Android的媒体库进行操作的实例和辅助工具,帮助开发者更好地理解和应用这些功能。 首先,我们要了解Android的媒体库主要由MediaStore类和...

    Android Programming: The Big Nerd Ranch Guide(第三版,完美文字pdf)

    4. Android中的数据存储:包括使用SQLite数据库进行本地数据存储、文件系统操作,以及使用SharedPreferences进行轻量级数据持久化。 5. 高级用户界面技术:包括自定义视图、Fragment的使用、高级列表视图,以及如何...

    android 实现 流媒体 播放远程mp3文件 代码

    2. **MediaPlayer**:Android自带的`MediaPlayer`类是处理音频、视频播放的核心,但不支持直接播放远程URL的流媒体。因此,代码采用了一种变通的方法,先将远程MP3文件的部分内容下载到本地,再由`MediaPlayer`播放...

    Android 读写文件实例

    在Android平台上,对文件进行读写操作是应用程序中常见的需求,比如存储用户数据、缓存信息或者媒体资源。本文将详细讲解如何在Android系统中进行SD卡和内部存储的读写,以及如何获取文件目录。 ### 1. Android权限...

    Qt Android 读写文件权限与录制音频权限询问Demo

    在Android平台上,开发基于Qt的应用程序时,由于Android 6.0(API级别23)引入了运行时权限管理,因此对于涉及敏感操作如读写文件和录制音频的功能,需要在运行时请求用户授权。本Demo是针对这些权限管理的一个实例...

    android入门到精通.pdf

    《Android入门到精通》这本书是为想要学习和掌握Android应用开发的初学者量身打造的指南。Android作为全球最流行的移动操作系统,拥有庞大的用户群体,为开发者提供了广阔的应用市场和无限的创新空间。本书旨在帮助...

    vlc-android媒体播放AAR库

    这个库特别适用于那些需要在Android应用中处理多媒体内容,尤其是流媒体服务的开发者。在这个“vlc-android媒体播放AAR库”中,包含了两个关键的组件:libvlc-3.0.0.aar和medialibrary-release.aar。 首先,我们来...

    Android MediaPlayer播放mp3的实例.doc

    使用 MediaPlayer 可以播放各种格式的媒体文件,如 mp3、mp4、avi 等。 在 Android 中,MediaPlayer 是基于 OpenCore(PacketVideo) 的库实现的,上层还包含了进程间通讯等内容,这种进程间通讯的基础是 Android ...

    Android 拍照更新媒体库,相册选取图片显示

    总的来说,实现"Android 拍照更新媒体库,相册选取图片显示"的功能需要对Android权限管理、意图交互、文件操作以及媒体库更新有深入理解。通过合理的设计和编程,我们可以提供一个流畅且可靠的用户体验,让用户能够...

    android:文件存取、数据库编程(中文)

    通过上述步骤,开发者可以构建一个基本的文件读写功能,使用户能够输入数据、保存至文件,并在需要时读取和显示这些数据。这种能力是许多Android应用的基础,尤其在那些需要持久化存储用户输入或配置信息的应用中至...

    Android入门中文教程

    - **应用程序**:Android系统自带了一系列核心应用,如邮件客户端、短信程序、日历、地图等,均采用Java语言编写。 - **应用程序框架**: - **视图(Views)**:丰富的预设组件,如列表、网格、文本框、按钮等,便于...

    android 播放局域网共享多媒体文件

    这些库允许Android应用连接到Windows文件服务器或NAS设备,读取共享目录中的多媒体文件。 实现步骤如下: 1. **建立网络连接**:使用SMB库创建一个SMBClient实例,配置网络连接参数,如服务器IP、用户名、密码和...

    Android 13读写权限变更,小米14 txt 文件读写

    现在,应用需要使用`MANAGE_EXTERNAL_STORAGE`权限来访问整个外部存储,或者使用新的API(如`MediaStore`)来访问特定类型的媒体文件。然而,这种广泛的权限通常只适用于文件管理器等特殊应用,大多数应用应采用更...

    Android App开发入门范例程序

    - Android Studio:Android的官方集成开发环境(IDE),包括项目创建、编辑器、构建工具和调试器的使用。 - 活动(Activity):Android应用的基本组件,负责用户界面和交互。 2. **Ch04 - 布局设计** - XML布局...

    Android使用libvlc播放流媒体、视频,Android使用demo

    本篇文章将深入探讨如何在Android应用中使用libvlc进行流媒体和视频播放,并基于提供的“libvlc-3.0.0-1.9.11.aar”文件进行实例演示。 首先,我们需要了解libvlc的核心特性。libvlc是一个跨平台的库,它提供了一个...

    android开发从入门到精通光盘源代码

    2. **布局设计**:Android应用的界面主要由XML布局文件定义,包括线性布局、相对布局、约束布局等。学习如何使用这些布局创建用户友好的交互界面是入门的关键。 3. **活动(Activity)管理**:Activity是Android...

    Android 多媒体文件选择器

    - **兼容性**:项目应支持多种Android版本,从早期的API级别到最新的版本,可能使用了Android Support Library或Jetpack库来实现向下兼容。 - **性能优化**:处理大量多媒体文件时,需要注意性能和内存管理,避免...

    Android入门学习四:Android系统框架

    3. 系统运行库:这部分包括各种C/C++库,如Android运行时库(ART)、媒体库、SQLite数据库系统、OpenSSL安全库等。它们为应用程序提供了核心功能,如图形处理、网络通信和数据存储。 4. 应用程序框架:这一层提供了...

Global site tag (gtag.js) - Google Analytics