我是靠谱客的博主 不安奇迹,最近开发中收集的这篇文章主要介绍#Android进行文件扫描#,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

对于前几日进行的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进行文件扫描#所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部