以下两种方法在模拟器(2.3.3)上都可以正常运行,但在真机(Nexus S with 4.1.2)上缩略图没有显示图片。我还会尝试在一个 Android 4 模拟器
上运行它。如果我为 ImageView
设置了默认的 android:src
,那么它就不再显示了。这让我觉得它被替换了,但是这个 ImageView
是空的。
public class MainActivity extends Activity {
ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img = (ImageView)findViewById(R.id.img_thumbnail);
new MyAsync().execute("http://commonsware.com/misc/test.mp4");
}
//This version is still not working, but it's more readable (edited: Selvin).
public class MyAsync extends AsyncTask<String, Void, Bitmap>{
@Override
protected Bitmap doInBackground(String... objectURL) {
//return ThumbnailUtils.createVideoThumbnail(objectURL[0], Thumbnails.MINI_KIND);
return ThumbnailUtils.extractThumbnail(ThumbnailUtils.createVideoThumbnail(objectURL[0], Thumbnails.MINI_KIND), 100, 100);
}
@Override
protected void onPostExecute(Bitmap result){
img.setImageBitmap(result);
}
}
}
我知道之前有一个类似的问题被提出过,从远程视频URL在Android设备上显示视频缩略图,但是我已经尝试过了,结果相同。
为什么这在设备上不起作用,如何让它起作用?
ImageView
是空的了。不管怎样,我觉得奇怪的是一个在2.3上能够正常工作的问题,在4上却不能。我认为被迫下载视频是荒谬的。虽然这只是一个测试视频,但想象一下下载更大的文件......你能告诉我你在哪里找到那些细节,证明filePath
指的是本地文件吗? - AlexAndro