gpt4 book ai didi

java - 如何使用媒体存储获取所有音频文件

转载 作者:行者123 更新时间:2023-11-29 04:45:09 25 4
gpt4 key购买 nike

我正在尝试从设备(内部和 SD 卡)中获取所有媒体文件。直到现在我能够从 SD 卡的固定文件夹中获取所有媒体文件。我已经浏览了大部分网页mediastore 。而且我能够获取媒体信息。但是我怎样才能从设备中获取所有音频文件,任何示例都会有所帮助。我试过这种方式 `public class SongDto {

public long songId;
public String songTitle;
public String songArtist;
public String path;
public short genre;
public long duration;
public String album;
public Bitmap albumArt;

public String toString() {
return String.format("songId: %d, Title: %s, Artist: %s, Path: %s, Genere: %d, Duration %s",
songId, songTitle, songArtist, path, genre, duration);
}

并在另一个类名中获取这些值

public class Utils {
private Context _context;

// constructor
public Utils(Context context) {
this._context = context;
}
public static ArrayList<SongDto> getMusicInfos(Context context) {

ArrayList<SongDto> musicInfos = new ArrayList<SongDto>();

现在我正在尝试在另一个类中获取 songTitle

private ArrayList<SongDto> musicInfos;
private Utils utils;
private ArrayList<String> songPaths = new ArrayList<String>();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
utils = new Utils(this);
songPaths = utils. getMusicInfos(songTitle);
}

private void update(){
ArrayAdapter<String> list=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,musicInfos.add(songTitle) );
}
}

我如何才能只获得所需的数组,如 songId、songArtist、歌曲持续时间的数组。我在哪里做错了。如何设置 getMusicInfos 方法`

最佳答案

你可以试试这个

 ArrayList audio=new ArrayList();
Cursor c=getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, new String[]{MediaStore.Audio.Media.DISPLAY_NAME}, null, null, null);


while(c.moveToNext())
{
String name=c.getString(c.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
audio.add(name);

}

同样也可以通过指定 INTERNEL_CONTENT_URI 获取内部存储的音频文件

关于java - 如何使用媒体存储获取所有音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37495822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com