2

正如我在 MediaMetadataRetriever API 中看到的那样,公共标签有常量。在我的应用程序中,我想阅读所有 mp3 标签。为了做到这一点,我使用 jid3lib。当我尝试在没有与 android (我的计算机上的 MP3 文件)任何连接的情况下读取标签时,我成功了,但是当我尝试在模拟器上读取 MP3 文件时,我的应用程序崩溃了。

我将一些音乐文件推送到模拟器中,并且成功读取了这些文件名,但是当应用程序试图获取标签时它崩溃了。

我想知道我是否必须在清单中声明任何 android 权限?或者在本地计算机和android中读取文件之间可能存在差异?因为我使用相同的逻辑来读取计算机上的 MP3 文件并且它可以工作。

编辑:下面评论中的代码以获得更好的可读性

File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC); 
File[] songs = path.listFiles(); 
for (int i=0; i<songs.length; i++){ 
   try { 
      MusicFile song = new MusicFile(songs[i]); 
      Log.d("VanVan", song.getArtist()); 
   } catch (TagException e) { 
      e.printStackTrace(); 
   } catch (Exception e) { 
      e.printStackTrace(); 
   } 
}
4

0 回答 0