寻找功能实现
import static android.content.ContentValues.TAG;
import android.annotation.SuppressLint;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.provider.MediaStore;
import android.util.Log;
import androidx.annotation.NonNull;
import com.example.entity.Music;
import java.util.ArrayList;
import java.util.List;
public class AudioUtils {
@NonNull
@SuppressLint("Range")
public static List<Music> getAllSongs(@NonNull Context context) {
List<Music> musics = new ArrayList<>();
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
@SuppressLint("Recycle")
Cursor cursor = context.getContentResolver().query(uri, null, null, null, null);
while (cursor.moveToNext()) {
Music music = new Music();
music.setFileName(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME)));
music.setTitle(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)));
music.setDuration(cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION)));
music.setSinger(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)));
music.setAlbum(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM)));
if (cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.YEAR)) != null) {
music.setYear(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.YEAR)));
} else {
music.setYear("未知");
}
if (cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)) != null) {
music.setFileUrl(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)));
}
if (cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION)) >= 30000) {
musics.add(music);
}
Log.d(TAG, "getAllSongs: " + music);
}
cursor.close();
return musics;
}
}
使用中用到的entity类
package com.example.entity;
import android.annotation.SuppressLint;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Music {
private String fileName;
private String title;
private String duration;
private String singer;
private String album;
private String year;
private String type;
private String size;
private String fileUrl;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDuration() {
return duration;
}
public void setDuration(long duration) {
@SuppressLint("SimpleDateFormat")
SimpleDateFormat format = new SimpleDateFormat("mm:ss");
this.duration =format.format(new Date(duration));
}
public String getSinger() {
return singer;
}
public void setSinger(String singer) {
this.singer = singer;
}
public String getAlbum() {
return album;
}
public void setAlbum(String album) {
this.album = album;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
public String getFileUrl() {
return fileUrl;
}
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
}
public Music() {
super();
}
public Music(String fileName, String title, String duration, String singer,
String album, String year, String type, String size, String fileUrl) {
super();
this.fileName = fileName;
this.title = title;
this.duration = duration;
this.singer = singer;
this.album = album;
this.year = year;
this.type = type;
this.size = size;
this.fileUrl = fileUrl;
}
@Override
public String toString() {
return "Song [fileName=" + fileName + ", title=" + title
+ ", duration=" + duration + ", singer=" + singer + ", album="
+ album + ", year=" + year + ", type=" + type + ", size="
+ size + ", fileUrl=" + fileUrl + "]";
}
}