【发布时间】:2012-11-24 11:00:45
【问题描述】:
以下两项在模拟器 (2.3.3) 上都可以正常工作,但在真实设备上(Nexus S 和 4.1.2)没有显示缩略图的图像。我还将尝试在Android 4 Emulator 上运行它。如果我为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);
}
}
}
我知道之前有人问过类似的问题,Displaying video thumbnails in an Android device from a remote video URL,但我已经尝试过这个并且结果相同。
为什么这在设备上不起作用以及如何使它起作用?
【问题讨论】:
-
define not working ...任何logcat日志?
-
所以提取后 bmThumbnail 为空?尝试在 AsyncTask 中调用 extract ...
-
@AlexAndro 请检查您的互联网连接。
-
hmmm starnge ...但它不依赖于模拟器/设备,而是依赖于android版本......它适用于2.3.3但不适用于4.1.2......我虽然它是因为NetworkOnMainTE但是即使使用 AsyncTask 它也不起作用......也许 createVideoThumbnail 不应该与 http 模式 filePath 一起使用......
-
@Selvin 是的,您对 SO 版本的看法是对的,我已经在 Android4 上使用 AsyncTask 进行了尝试,但它不起作用。我看到互联网上的示例使用 sdcard 而不是 URL。
标签: android url bitmap video-thumbnails