从文件获取媒体标题

发布于 2024-12-17 18:25:35 字数 1360 浏览 1 评论 0原文

我使用 import java.io.File; 从我的 SD 卡导入所有音乐文件, 现在我想要使用 Mediastore 的文件标题,但我该怎么做? 这是我现在使用的代码。

public class ListFiles extends ListActivity {
 private List<String> directoryEntries = new ArrayList<String>();


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent i = getIntent();
    File directory = new File(i.getStringExtra("directory"));

    if (directory.isDirectory()){
        File[] files = directory.listFiles();

        Arrays.sort(files, new Comparator<File>(){
            public int compare(File f1, File f2) {
                return -Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
            }
        });

        this.directoryEntries.clear();
        for (File file : files) {
            this.directoryEntries.add(file.getName());  
        }

        ArrayAdapter<String> directoryList = new ArrayAdapter<String>(this,R.layout.file_row, this.directoryEntries);
    this.setListAdapter(directoryList);
    }

}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
File clickedFile = new File(this.directoryEntries.get(position));
Intent i = getIntent();
i.putExtra("clickedFile", clickedFile.toString());
setResult(RESULT_OK, i);
finish();
}

}

谢谢。

I used import java.io.File; to import all music files from my sdcard,
Now i want the Title's of the files using Mediastore but how do I do that?
This is the code I Use now.

public class ListFiles extends ListActivity {
 private List<String> directoryEntries = new ArrayList<String>();


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent i = getIntent();
    File directory = new File(i.getStringExtra("directory"));

    if (directory.isDirectory()){
        File[] files = directory.listFiles();

        Arrays.sort(files, new Comparator<File>(){
            public int compare(File f1, File f2) {
                return -Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
            }
        });

        this.directoryEntries.clear();
        for (File file : files) {
            this.directoryEntries.add(file.getName());  
        }

        ArrayAdapter<String> directoryList = new ArrayAdapter<String>(this,R.layout.file_row, this.directoryEntries);
    this.setListAdapter(directoryList);
    }

}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
File clickedFile = new File(this.directoryEntries.get(position));
Intent i = getIntent();
i.putExtra("clickedFile", clickedFile.toString());
setResult(RESULT_OK, i);
finish();
}

}

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

愛上了 2024-12-24 18:25:35

我已经使用 MediaStore:类概述 - 媒体提供程序包含内部和外部存储设备上所有可用媒体的元数据

您可以参考这两个例子来了解MediaStore的使用
列出视频列表音频

I have done that for Video files using MediaStore : Class Overview - The Media provider contains meta data for all available media on both internal and external storage devices.

You can refer these two example to understand the use of MediaStore
List Video and List Audio

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文