Oba poniżej działają poprawnie na emulatorze (2.3.3), ale na rzeczywistym urządzeniu (Nexus S z 4.1.2) żadne zdjęcie nie jest wyświetlane dla miniatury. Spróbuję też uruchomić go na Android 4 Emulator
. Jeśli ustawię domyślny android:src
dla ImageView
, nie będzie on już pokazywany. To sprawia, że myślę, że został zastąpiony, ale ImageView
jest pusty.Możliwe jest wyświetlanie miniatury wideo z adresu URL systemu Android 4 lub nowszego?
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);
}
}
}
Wiem, że podobne pytanie zostało zadane wcześniej, Displaying video thumbnails in an Android device from a remote video URL, ale ja już próbowałem i ten sam rezultat.
Dlaczego to nie działa na urządzeniu i jak działa?
definiować nie działa ... jakieś kłody logcat? – Selvin
@Selvin No..no LogCat – AlexAndro
tak bmThumbnail ma wartość null po wyodrębnieniu? spróbuj wywołać ekstrakt w AsyncTask ... – Selvin