我正在将我的mp3文件中的图像转换为 Bitmap [] ,但它会导致应用程序停止一点,我想使用Asynctask使其更顺畅。
这就是我得到位图的方式:
Bitmap[] bm = new Bitmap[mySongs.size()];
for (int i = 0; i < mySongs.size(); i++) {
if (mySongs.size() > 0) {
u = Uri.parse(mySongs.get(i).toString());
mediaMetadataRetriever = new MediaMetadataRetriever();
mediaMetadataRetriever.setDataSource(getApplicationContext(), u);
byte[] artBytes = mediaMetadataRetriever.getEmbeddedPicture();
if(artBytes != null) {
InputStream is = new ByteArrayInputStream(mediaMetadataRetriever.getEmbeddedPicture());
bm[i] = BitmapFactory.decodeStream(is);
}
}
如何将它放入Asynctask?
答案 0 :(得分:0)
这就是您的实现方式:
bio#about
我建议创建一个扩展 AsyncTask myAsyncTask = new AsyncTask() {
@Override
protected Object doInBackground(Object[] objects) {
//ToDo: Do all the work in here and return result as object
return null;
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
//ToDo: Do whatever you want to do with the result in here
}
}
的静态类,或者不传递任何上下文或者可能发生内存泄漏