java - 在 android 应用程序中读取 mp3 标签

标签 java android tags mp3

我将 jid3lib 用于 java。当我在存储在我计算机中的文件上使用这个库时,它工作得很好,但是当我尝试读取模拟器 sdcard 上文件的 mp3 标签时,我得到了 Exeption。

我使用以下代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);

    File musicPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);

    File[] songs = musicPath.listFiles();

    for (int i=0; i < songs.length; i++){
        try {
            MP3File song = new MP3File(new File(songs[i].getPath()));
            Log.d("TEST", song.getID3v1Tag().getAlbum() );

        } catch (TagException e) {
            Log.d("TEST", "Tag Exception");
            e.printStackTrace();
        } catch (Exception e) {
            Log.d("TEST", "Exception");             
            e.printStackTrace();
        }

    }
}

我在 sdcard 中放了 2 个 mp3 文件,但日志中仍然出现异常。 这可能是什么问题?

我在 LogCat 中收到以下错误:

java.io.FileNotFoundException: /mnt/sdcard/Music/song.mp3: open failed: EACCES (Permission denied)

但是当我在 DDMS 的文件资源管理器中查看时,我可以看到该路径下的文件,即使我使用循环来打印文件名,它也会显示正确的名称。

最佳答案

EACCES (Permission denied)

添加READ_EXTERNAL_STORAGE list 文件中的权限。

而且,也许还有 WRITE_EXTERNAL_STORAGE

关于java - 在 android 应用程序中读取 mp3 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15200852/

相关文章:

java - 使用 JDK 7 与使用编译器合规级别 1.7 的 JDK 8 之间有什么区别?

java - 安卓;如何在执行方法时显示按钮

java - ArrayAdapter getView 位置不正确

android - 如何预览 xml drawable?

tags - 使用:tjump instead of :tag vim on pressing ctrl-]

java - 使用 gradle 构建 JAR 并部署它的最佳实践 - 使用 Jenkins

java - 我可以在不使类泛型的情况下使构造函数泛型吗?

java - 在java中将对象声明为final

html - Opengraph 元标记 og :type set to "product" errors (like button & URL linter/debug)

html - 最常被误用的 html 标签有哪些?