Uri with File:/// vs Content:// -- 检索音乐文件信息

发布于 2024-11-24 10:00:13 字数 809 浏览 2 评论 0原文

我注意到我的代码的行为有些奇怪,希望有人能提供一些线索。

        String temp = "file:///sdcard/music/05 Folsom Prison Blues.mp3";
        String temp2 = "content://media/external/audio/media/10";

        Uri uri = Uri.parse(temp);

        Cursor musiccursor = null;
        musiccursor = managedQuery(uri, null, null, null, null);

        try {
        if (musiccursor.moveToFirst()) {
            String title; 
            int titleColumn = musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE); 
                title = musiccursor.getString(titleColumn);
            item.setText(title);
        }

我注意到的问题是,使用 temp2 一切运行正常,我能够获得歌曲的标题。但是对于临时音乐光标每次都是空的,所以我们抛出一个空指针异常。知道这里有什么区别吗?我已经尝试过 temp 的编码版本(将空格转换为 %20 等),但这不起作用。我可以使用 temp2 创建的 uri 来使用意图来播放歌曲,没有问题...不知道我在这里缺少什么。

提前致谢!

I've noticed something odd about the behavior of my code and am hoping someone can shed some light.

        String temp = "file:///sdcard/music/05 Folsom Prison Blues.mp3";
        String temp2 = "content://media/external/audio/media/10";

        Uri uri = Uri.parse(temp);

        Cursor musiccursor = null;
        musiccursor = managedQuery(uri, null, null, null, null);

        try {
        if (musiccursor.moveToFirst()) {
            String title; 
            int titleColumn = musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE); 
                title = musiccursor.getString(titleColumn);
            item.setText(title);
        }

The problem I'm noticing is that with temp2 everything runs fine, I'm able to get the song's title. But with temp musiccursor is null every time so we throw a nullpointerexception. Any idea what the difference is here? I've tried the encoded version of temp (converts spaces to %20 etc) and that doesn't work. I can use the uri that is created with temp2 to play the song using an intent no problem... Not sure what I'm missing here.

Thanks in advance!

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

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

发布评论

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

评论(1

愚人国度 2024-12-01 10:00:14

file:// 不是由内容提供者管理的方案(只有 content:// 是),因此 ContentResolver 不会能够用它做任何事情。

file:// is not a scheme managed by a content provider (only content:// is), and so a ContentResolver will not be able to do anything with it.

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