对于前几日进行的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); 

界面截图:
整理不易,点个赞再走。

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. 一款常用的 Squid 日志分析工具
  3. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  4. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  5. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  6. NDK编程:Android.mk编译APK范例
  7. Android(安卓)简单GreenDao增删改查
  8. 我的Android工作笔记
  9. Android(安卓)ListView分页显示

随机推荐

  1. android sdk API level对应关系及下载地
  2. 关于android应用程序的入口
  3. 关于android的各种disk images
  4. Android中的全局变量
  5. android 2.android 系统架构与应用程序目
  6. android DatePicker样式设置
  7. Android
  8. 实时Android语音对讲系统架构
  9. Android(安卓)模块化编程之引用本地的aar
  10. Android(安卓)Drawable系列(1):自定义背景以