getEmbeddedPicture:当我放置多个mp3文件时,调用getEmbeddedPicture失败

时间:2013-03-07 11:33:47

标签: java android android-file

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

我该如何解决?提前谢谢

1 个答案:

答案 0 :(得分: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);
        }
    }

}