概述
对于前几日进行的Android音乐播放器,需要进行对手机存储进行扫描。这将将分享一个可以进行本地扫描的工具类。
下面展示一些 内联代码片
。
public class LocalMusicUtils {
//定义一个集合,存放从本地读取到的内容
private final static String TAG = "LocalMusicUtils";
public static List<Song> list;
public static Song song;
private static String name;
private static String singer;
private static String path;
private static int duration;
private static long size;
private static long albumId;
private static long id;
//获取专辑封面的Uri
private static final Uri albumArtUri = Uri.parse("content://media/external/audio/albumart");
public static List<Song> getmusic(Context context) {
list = new ArrayList<>();
Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null,
null, MediaStore.Audio.AudioColumns.IS_MUSIC); //推荐,可以扫描全部MP3文件
if (cursor != null) {
while (cursor.moveToNext()) {
song = new Song();
name = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME));
id = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
singer = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
path = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
System.out.println("CCCC"+path);
duration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE));
albumId = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID));
// 把歌曲名字和歌手切割开
song.setName(name);
song.setSinger(singer);
song.setPath(path);
song.setDuration(duration);
song.setSize(size);
song.setId(id);
song.setAlbumId(albumId);
if (size > 1000 * 800) {
if (name.contains("-")) {
String[] str = name.split("-");
singer = str[0];
song.setSinger(singer);
name = str[1];
song.setName(name);
} else {
song.setName(name);
}
}
list.add(song);
}
}
cursor.close();
return list;
}
}
其中Song是一个类,主要用于扫描大ode歌曲的信息的存放。代码如下:
下面展示一些 内联代码片
。
public class Song {
public String name;//歌曲名
public String singer;//歌手
public long size;//歌曲所占空间大小
public int duration;//歌曲时间长度
public String path;//歌曲地址
public long albumId;//图片id
public long id;//歌曲id
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSinger() {
return singer;
}
public void setSinger(String singer) {
this.singer = singer;
}
public long getSize() {
return size;
}
public void setSize(long size) {
this.size = size;
}
public int getDuration() {
return duration;
}
public void setDuration(int duration) {
this.duration = duration;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public long getAlbumId() {
return albumId;
}
public void setAlbumId(long albumId) {
this.albumId = albumId;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@NonNull
@Override
public String toString() {
return super.toString();
}
}
以上就是Android开发基于java代码用于扫描手机存储的MP3文件。
注意:
下面展示一些 内联代码片
。
(1)也可以进行扫描MP3 文件,但是扫描出来的文件播放的时候会有报错。
Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER); //垃圾。不能全部扫描,并播放
(2) 推荐,可以扫描全部MP3文件,可以扫描到所有的MP3 文件(包括一些其他音乐软件下载的MP3文件)
Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null,
null, MediaStore.Audio.AudioColumns.IS_MUSIC);
界面截图:
整理不易,点个赞再走。
最后
以上就是不安奇迹为你收集整理的#Android进行文件扫描#的全部内容,希望文章能够帮你解决#Android进行文件扫描#所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复