Skip to content

Instantly share code, notes, and snippets.

@benbaxter
benbaxter / LoadBitmapAsyncTask.java
Last active August 21, 2017 21:19
Loads a bitmap from an async task.
@Override
public void getThumbnail(int index, ResultCallback callback) {
LoadBitmapAsyncTask task = new LoadBitmapAsyncTask(index, callback);
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
class LoadBitmapAsyncTask extends AsyncTask<Void, Void, Bitmap> {
final int mIndex;
final ResultCallback mResultCallback;
@benbaxter
benbaxter / GetThumbnail.java
Created August 21, 2017 21:16
Steps to get a thumbnail
@Override
public void getThumbnail(int index, final ResultCallback callback) {
// Step 1. Get position from the index.
long position = getSeekPositions()[index];
// Step 2. Retrieve thumbnail in the background to not block the UI thread.
retrieveThumbnailForPosition(position, index, (bitmap) -> {
// Step 3. Return the thumbnail to be presented in the UI.
callback.onThumbnailLoaded(bitmap, index);
});
@benbaxter
benbaxter / PlaybackSeekMetadataDataProvider.java
Last active August 21, 2017 21:13
Calculating seek positions for PlaybackSeekMetadataDataProvider
public class PlaybackSeekMetadataDataProvider extends PlaybackSeekDataProvider {
//…
public PlaybackSeekMetadataDataProvider(Context context,
String videoUrl,
long interval) {
mContext = context;
mVideoUrl = videoUrl;
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(mVideoUrl, new HashMap<>());