Android获取手机内的音频数据

我们经常需要获取手机信息,例如我们想做一个音乐播放器,我们需要拿到本地的音频信息,这样一来,我们就需要考虑如何拿到这些数据了

1,一个神秘的apk

在这里插入图片描述
这个叫做MediaProvider.apk是干什么的呢,和我们今天讲的东西有啥关联吗,其实这是一个正在运行的apk,这个apk是没有界面的,因此我们是看不见的,他的作用就是在后台默默的为我们收集相关的数据信息。,然后保存在数据库里面
在这里插入图片描述

在这里插入图片描述
从上面的截图上看,这个apk把我们收集内的媒体信息都存储在数据库中了,那么接下来我们只需要读取数据库,拿到相关的资源即可了。

2,获取资源之 子线程+handler方式

这里获取资源,我给大家提供三种方式

  1. 子线程+handler
  2. 自带的异步任务AsyncTask
  3. AsyncQueryHandler

子线程+handler:
这个首先是创建子线程:

//这个是android中的内容提供者,上面所说的三种方式都需要用到这个,主要提供android手机的内的基本数据信息
val resolver = context?.contentResolver
Thread(
object:Runable{
   
   
	override fun run(){
   
   
			var cursor = resolver?.query(
			//这方法不懂请看下面的源码分析,看完我们再接着往下看
			MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
			arrayOf(
			MediaStore.Audio.Media.DATA,
			MediaStore.Audio.Media.SIZE,
			MediaStore.Audio.Media.DISPLAY_NAME,
			MediaStore.Audio.Media.ARIST
			), null ,null.null
		)
		//上面返回的是一个游标,我们定义一个处理游标的方法类,接着看下面的游标类
		CursorUtil(cursor)
		var msg = Message.obtain()
		msg.obj = cursor
		handler.setMessage(mgs)
		//注意 handler创建我这里就不写了,注意最好使用防止内存泄漏的写法
	}
}
).
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值