1

我有一个问题:我实现了一个 android 项目,当我按下按钮时它会播放一首歌曲。它还在另一个视图(应用程序有两个片段)中显示 mp3 文件的元数据。我的意思是元数据解释器的名称,songcover ...我在原始目录中只有一个 mp3 文件。但是当我在原始目录中放置另一个 mp3 文件时(仅此而不更改代码),元信息突然消失了。结果为空。这些不再显示。当我删除一个 mp3 文件时,它再次显示元数据。能告诉我为什么我不能在原始目录中放另一个 mp3 文件吗?我不明白。:( 我没有改变代码,只放了另一个 mp3 文件。然后它不起作用。

我该如何解决?提前致谢

4

1 回答 1

0

尝试像在 AsyncTask 中加载每个:

private class LoadImageTask extends AsyncTask<String, Void, Bitmap>{

    private ImageView artImage;

    public LoadImageTask(ImageView image){
        artImage = image;
    }

    @Override
    protected void onPreExecute() {
        retriever = new MediaMetadataRetriever();
    }

    @Override
    protected Bitmap doInBackground(String... params) {
        retriever.setDataSource(params[0]);
        byte[] art = retriever.getEmbeddedPicture();
        Bitmap bitmap = null;
        if( art != null ){
            bitmap = BitmapFactory.decodeByteArray(art, 0, art.length);
        }
        return bitmap;
    }

    @Override
    protected void onPostExecute(Bitmap bm) {
        if( bm != null ){
            artImage.setImageBitmap(bm);
        }
        else{
            artImage.setImageResource(R.drawable.no_image);
        }
    }

}
于 2014-06-06T05:17:57.543 回答