I am querying video from Parse Backend. I want to use getInBackground to download videos from parse. And After the video are download I want to use onClick to start playing the video Immediately in my VideoView Activity
Here is the flow of my code. Fragment for GridView
query.orderByDescending("createdAt");
ob = query.find();
for (ParseObject country : ob) {
ParseFile image = (ParseFile) country.get("videoThumbs");
ParseFile video = (ParseFile)country.get("file");
video.getDataInBackground(new GetDataCallback(){
@Override
public void done(byte[] bytes, ParseException e) {
}
}, new ProgressCallback() {
public void done(Integer percentDone) {
// Update your progress spinner here. percentDone will be between 0 and 100.
}
});
String user = country.getString(ParseConstants.KEY_SENDER_NAME);
//Uri fileUri = Uri.parse(video.getUrl());
ParseFeeds map = new ParseFeeds();
map.setPhone(image.getUrl());
map.setVideo(video.getUrl());
map.setUser(user);
phonearraylist.add(map);
GridViewAdapter
if (view == null) {
holder = new ViewHolder();
view = inflater.inflate(R.layout.feeds_image, null);
// Locate the ImageView in gridview_item.xml
holder.phone = (ImageView) view.findViewById(R.id.videoThumb);
holder.user = (TextView)view.findViewById(R.id.grid_item_title);
view.setTag(holder);
holder.progressBar = (ProgressBar)view.findViewById(R.id.thumbProgress);
} else {
holder = (ViewHolder) view.getTag();
}
// Load image into GridView
//imageLoader.DisplayImage(phonearraylist.get(position).getPhone(),
//holder.phone);
Picasso.with(context)
.load(phonearraylist.get(position).getPhone())
.transform(new CircleTransform())
.error(R.drawable.people)
.into(holder.phone);
holder.user.setText(phonearraylist.get(position).getUser());
// Capture GridView item click
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// Send single item click data to SingleItemView Class
Intent intent = new Intent(context, SingleVideoView.class);
// Pass all data phone
intent.putExtra("video", phonearraylist.get(position)
.getVideo());
context.startActivity(intent);
}
});
return view;
Here is my VideoView Activity
Intent i = getIntent();
// Get the intent from ListViewAdapter
phone = i.getStringExtra("video");
setContentView(R.layout.video_layout);
mVideoView = (VideoView)findViewById(R.id.videoView);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(mVideoView);
// mVideoView.setMediaController(mediaController);
mVideoView.setVideoPath(phone);
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mVideoView.start();
}
});
mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
finish();
}
});
}