跪求手机photoshop中文版免费版(win10)

2663人阅读
Android进阶——认真2016(32)
(1)如何获取手机里所有歌曲的信息?
& & 如果要解决这个问题,那么我们首先要知道在系统中,是如何对歌曲信息进行管理的。
& & 在Android中,系统为多媒体类型的文件(比如图片、音频、视频等)建立了数据库(sqlite数据库),从而完成多媒体数据的维护工作。我们当然可以不用这些系统的数据库,比如说,如果我们想获取所有歌曲,我们可以扫描sd上所有的文件夹中的文件,然后根据文件的后缀名,就可以取到我们想要的mp3、wma文件等。但是,这样的操作是非常效率低下的,所以是行不通的。
& & Android系统为我们建立起多媒体数据库之后,便把多媒体常用的信息,比如歌曲名、文件大小、播放时长、专辑、歌手等常用信息保存在了数据库里,那我们可以直接用多媒体库中的数据,完成这个需求。虽然我们需要用多媒体库,但是我们不能直接操作。Android为这些常用的需要共享的数据(多媒体和联系人等),创建了ContentProvider,因此,如果我们想获取到这些信息,我们就需要用ContentProvider。
& & 在开始介绍之前,先给出需要用到的歌曲的实体类
MediaStore中定义了一系列的数据表格,通过提供的查询接口,我们可以得到各种需要的信息。下面我们重点介绍查询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));
* @ClassName: com.example.mediastore.Song
* @Description: 歌曲实体类
* @author zhaokaiqiang
上午11:49:59
public class Song {
private String fileN
private String fileU
public String getFileName() {
return fileN
public void setFileName(String fileName) {
this.fileName = fileN
public String getTitle() {
public void setTitle(String title) {
this.title =
public int getDuration() {
public void setDuration(int duration) {
this.duration =
public String getSinger() {
public void setSinger(String singer) {
this.singer =
public String getAlbum() {
public void setAlbum(String album) {
this.album =
public String getYear() {
public void setYear(String year) {
this.year =
public String getType() {
public void setType(String type) {
this.type =
public String getSize() {
public void setSize(String size) {
this.size =
public String getFileUrl() {
return fileU
public void setFileUrl(String fileUrl) {
this.fileUrl = fileU
public Song() {
public Song(String fileName, String title, int duration, String singer,
String album, String year, String type, String size, String fileUrl) {
this.fileName = fileN
this.title =
this.duration =
this.singer =
this.album =
this.year =
this.type =
this.size =
this.fileUrl = fileU
public String toString() {
return &Song [fileName=& + fileName + &, title=& + title
+ &, duration=& + duration + &, singer=& + singer + &, album=&
+ album + &, year=& + year + &, type=& + type + &, size=&
+ size + &, fileUrl=& + fileUrl + &]&;
有了上面的这些信息,我们完全可以做一个播放器了!
& 有了实体类之后,我封装了一个类,专门用来获取歌曲信息,下面是实现的代码
* @ClassName: com.example.mediastore.AudioUtils
* @Description: 音频文件帮助类
* @author zhaokaiqiang
上午11:39:45
public class AudioUtils {
* 获取sd卡所有的音乐文件
* @throws Exception
public static ArrayList&Song& getAllSongs(Context context) {
ArrayList&Song& songs =
Cursor cursor = context.getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
new String[] { MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DISPLAY_NAME,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.YEAR,
MediaStore.Audio.Media.MIME_TYPE,
MediaStore.Audio.Media.SIZE,
MediaStore.Audio.Media.DATA },
MediaStore.Audio.Media.MIME_TYPE + &=? or &
+ MediaStore.Audio.Media.MIME_TYPE + &=?&,
new String[] { &audio/mpeg&, &audio/x-ms-wma& }, null);
songs = new ArrayList&Song&();
if (cursor.moveToFirst()) {
Song song =
song = new Song();
song.setFileName(cursor.getString(1));
song.setTitle(cursor.getString(2));
song.setDuration(cursor.getInt(3));
song.setSinger(cursor.getString(4));
song.setAlbum(cursor.getString(5));
if (cursor.getString(6) != null) {
song.setYear(cursor.getString(6));
song.setYear(&未知&);
// 歌曲格式
if (&audio/mpeg&.equals(cursor.getString(7).trim())) {
song.setType(&mp3&);
} else if (&audio/x-ms-wma&.equals(cursor.getString(7).trim())) {
song.setType(&wma&);
// 文件大小
if (cursor.getString(8) != null) {
float size = cursor.getInt(8) / 1024f / 1024f;
song.setSize((size + &&).substring(0, 4) + &M&);
song.setSize(&未知&);
// 文件路径
if (cursor.getString(9) != null) {
song.setFileUrl(cursor.getString(9));
songs.add(song);
} while (cursor.moveToNext());
cursor.close();
&代码的思路很简单,我们需要根据ContentResover获取到一个Cursor,然后根据这个游标,遍历所有的歌曲的信息。在上面的代码中,我们查询出了包括歌名、路径、文件大小等在内的共10项数据,对于一般的应用这些足够了。查询出来之后,我们把信息转换成了实体类,这样操作起来更加方便。
& & 如果要使用这个工具类,记得添加权限&&uses-permission android:name=&android.permission.READ_EXTERNAL_STORAGE& /&
(2)如何及时更新媒体库
& & Android系统刷新媒体库的数据的时机,是在开机的时候,即手机一开机,系统便重新扫描一下sd卡,并将多媒体数据库更新一下。如果用户删除了某一个音频文件,不重新开机的话,数据库中的数据是不会更新的。那么,如果我们想用户一打开软件,就强制的更新多媒体数据库,应该怎么做呢?
& & 在4.4版本之前,我们可以使用发送广播的方式,强制刷新多媒体库
IntentFilter intentFilter = new IntentFilter(
Intent.ACTION_MEDIA_SCANNER_STARTED);
intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);
intentFilter.addDataScheme(&file&);
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse(&file://&
+ Environment.getExternalStorageDirectory()
.getAbsolutePath())));发送广播之后,还需要注册一个广播接受者,来接受并处理扫描开始和结束事件
private class ScanReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
// 当系统开始扫描sd卡时,为了用户体验,可以加上一个等待框
if (Intent.ACTION_MEDIA_SCANNER_STARTED.equals(action)) {
// 当系统扫描完毕时,停止显示等待框,并重新查询ContentProvider
if (Intent.ACTION_MEDIA_SCANNER_FINISHED.equals(action)) {
}&&&通过这种方式,我们便可以强制更新媒体库。
& & 但是,在4.4之后,Android对一些操作的权限提高,如果在4.4的系统上使用这种方式,便会出现下面的错误
Caused by: java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.MEDIA_MOUNTED from pid=22360, uid=10163
这是因为在4.4之后,这个广播只有系统应用才能发出,因此,我们不能使用这种方式了,我们可以使用下面的代码实现相同的功能:
MediaScannerConnection.scanFile(this, new String[] { Environment
.getExternalStorageDirectory().getAbsolutePath() }, null, null);
& 使用MediaScannerConnection的scanFile方法,就可以强制扫描我们需要更新的文件路径,之后媒体数据库也会同步更新,这样,就不会出现文件删除,在媒体库中却能搜索到的情况了,也能解决这位朋友提出的新增加歌曲的信息获取问题了。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:252672次
积分:6434
积分:6434
排名:第3542名
原创:395篇
转载:38篇
评论:27条
阅读:1193
文章:32篇
阅读:11658
文章:22篇
阅读:8565
文章:24篇
阅读:8504
文章:92篇
阅读:106101
(1)(2)(2)(4)(1)(4)(19)(34)(24)(15)(42)(13)(5)(20)(22)(31)(4)(34)(27)(2)(2)(1)(86)(11)(2)(5)(1)(1)(18)(2)红米手机 &
电视盒子 &
智能硬件 &
骨灰级手机控
扫码下载App一键签到 升级加速
不小心把miui自带的音乐播放器删掉了如何找回。。恢复出...
&来自老版论坛
扫一扫!手机看帖更爽
不小心把miui自带的音乐播放器删掉了如何找回。。恢复出厂设置也不行 ,,求救啊
扫描二维码,手机查看本帖
·来自老版论坛
刷机,重刷一下系统就可以了,记得备份哦!
京ICP证110507号 京ICP备号经验6566 米
在线时间345 小时
版本7.6.29
机型小米Note
签到次数168
MIUI版本7.6.29
v5自带音乐软件,怎么读取不了sd卡中的歌曲,打开音乐,显示sd卡里没有歌曲,而文件管理的根目录里的music文件夹里是有歌曲的。
15人也遇到
遇到的人越多,MIUI开发组会越关注
分享到微信朋友圈
打开微信,点击底部的“发现”,使用 “扫一扫” 即可将网页分享到我的朋友圈。
一个人总是仰望和羡慕着别人的幸福,一回头,却发现自己正被仰望和羡慕着。
其实,每个人都是幸福的。
只是,你的幸福,常常在别人眼里 。
经验179 米
在线时间95 小时
版本V7.1.1.0.KHLCNCK
积分 345, 距离下一级还需 155 积分
积分 345, 距离下一级还需 155 积分
机型红米手机2A 联芯L1860C
签到次数10
MIUI版本V7.1.1.0.KHLCNCK
一样啊,求帮忙
经验1147 米
在线时间60 小时
版本4.11.21
积分 1246, 距离下一级还需 754 积分
积分 1246, 距离下一级还需 754 积分
机型小米手机2/2S
签到次数66
MIUI版本4.11.21
还没试验自带的播放器,我还是用的天天静听。
V5双击锁屏的锁头的时候,如果已经打开了别的播放软件,那么控制的就是其他的播放软件,而不是V4那种播放一个软件的时候又打开了系统自带的播放器
不知道V5对flac的支持怎么样了
经验6566 米
在线时间345 小时
版本7.6.29
机型小米Note
签到次数168
MIUI版本7.6.29
咋没人知道呢?没人遇到这样的问题?
一个人总是仰望和羡慕着别人的幸福,一回头,却发现自己正被仰望和羡慕着。
其实,每个人都是幸福的。
只是,你的幸福,常常在别人眼里 。
经验967 米
在线时间7 小时
版本5.2.13
积分 900, 距离下一级还需 1100 积分
积分 900, 距离下一级还需 1100 积分
机型未知设备
签到次数102
MIUI版本5.2.13
我也遇到这样的问题,自带的音乐播放器认歌不全,无法手动扫描SD卡里的歌曲
经验1137 米
在线时间13 小时
版本5.11.5
积分 1165, 距离下一级还需 835 积分
积分 1165, 距离下一级还需 835 积分
机型小米手机2/2S
签到次数119
MIUI版本5.11.5
我也遇到。后来只好把SD中的音乐全删了,用wifi下载自带音乐软件中的音乐。好麻烦
经验250 米
在线时间28 小时
版本4.5.16
积分 317, 距离下一级还需 183 积分
积分 317, 距离下一级还需 183 积分
机型中兴N5
签到次数12
MIUI版本4.5.16
一种被证实的 bug
经验1884 米
在线时间144 小时
版本5.12.4
积分 2698, 距离下一级还需 2302 积分
积分 2698, 距离下一级还需 2302 积分
机型小米手机2/2S
签到次数60
MIUI版本5.12.4
经验1884 米
在线时间144 小时
版本5.12.4
积分 2698, 距离下一级还需 2302 积分
积分 2698, 距离下一级还需 2302 积分
机型小米手机2/2S
签到次数60
MIUI版本5.12.4
经验2122 米
在线时间210 小时
积分 2567, 距离下一级还需 2433 积分
积分 2567, 距离下一级还需 2433 积分
机型红米Note 3-全网通版
签到次数101
MIUI版本7.6.8
通过手机发布
歌曲放到miui下面music目录即可
MIUI 300周
MIUI 300周更新纪念勋章
MIUI 2000万
MIUI 2000万发烧友纪念勋章
MIUI三周年
MIUI三周年纪念勋章
关注腾讯微博
已关注腾讯微博
关注新浪微博
已关注新浪微博
1000万用户纪念勋章
MIUI1000万用户纪念勋章
已关注微信
Copyright (C) 2017 MIUI
京ICP备号 | 京公网安备34号 | 京ICP证110507号请问谁知道安卓手机音乐放在哪个文件夹_手机问题_土巴兔问吧
请问谁知道安卓手机音乐放在哪个文件夹
输入手机号码,报价结果将发送到您手机
装修顾问-馨馨
4年行业经验,24h可咨询
10秒闪电通过好友
报价短信已发送到您的手机
因材料品牌及工程量不同,具体报价以量房实测为准
稍候装修管家将回电您,免费提供装修咨询服务
您的装修预算约
*装修管家将回电您,免费提供装修咨询服务
*装修管家将回电您,免费提供装修咨询服务
*因材料品牌及工程量不同,具体报价以量房实测为准
装修顾问 -馨馨
(四年装修行业经验)
微信扫一扫
3.&您家小区名称 :&&
请选择您家的装修时间
请问谁知道安卓手机音乐放在哪个文件夹
提问者:韦姮娥|
浏览:816|
时间: 16:41:24
已有3条答案
回答数:9920|被采纳数:1
所有回答:&9920
<p class="ask_one_p edit_、首先打开手机的录音机,点击手机按键菜单键2、进入录音机设定模式,看看音乐文件是存在存储卡还是手机内存文件夹3、看到我的手机是把音乐文件放在了存储卡上4、手机连接上电脑进入我的存储卡5、打开SOUND文件夹,音乐文件都在这里了!6、音乐文件为3ga后缀的文件!7、这些就是安卓类手机的音乐文件了!
回答数:29247|被采纳数:3
张经理1302
所有回答:&29247
当手机无安装外置SD卡时,音乐默认保存路径:文件管理器-手机-
当手机安装外置SD卡是,音乐默认保存路径:文件管理器-SD卡-voicecall。
查看路径方法:1、在【待机界面】向左滑动,点击【小工具】;2、点击【文件管理器】;3、点击【快速查看】,选择【手机】;4、点击【vcoicecall】文件夹即可看到保存的音乐。
回答数:49563|被采纳数:15
所有回答:&49563
你好,若是您自行下载的音乐文件,您可尝试在文件管理--所有文件--找到您存放音乐的文件夹查看;若您的音乐是通过第三方播放器下载的,您可尝试在文件管理--所有文件--找到播放器软件对应的文件夹--找songs或music文件夹,可查看您的音乐文件;若您指的是系统自带的音乐,您可尝试在文件管理--所有文件--Music文件夹查看。
已有 3 个回答
已有 3 个回答
已有 3 个回答
已有 3 个回答
已有 3 个回答
北欧简约、复古美式、大气欧式、清新地中海风,总有一款适合你!
一万套装修案例
下载土巴兔APP
中国装修网相关内容:
最新下载:
评测技巧热点

我要回帖

更多关于 手机photoshop中文版 的文章

 

随机推荐