Load Video From Firebase Storage To Videoview
Solution 1:
First of all, be certain that the video in Storage is actually in a format that Android devices can play. VideoView cannot play everything - only the types of videos that Android supports.
What you're doing now by passing the uri directly into the VideoView is interpreted as an attempt to stream the video from the given uri. Firebase Storage doesn't support video streaming, so that's won't work. Streaming from a uri requires that the server on the other end be able to stream the given resource.
If want to play a video from Storage, you'll have to download entirety first, saved to a local file, then point the VideoView at the local file for playback.
Solution 2:
I think the time is late for the answer, but this answer to those who are looking for it later:
Via RecyclerView
View dial Uri
from the data Snapshot in adapter
@OverrideprotectedvoidonStart() {
super.onStart();
final FirebaseRecyclerAdap...///
) {
@Overrideprotectedvoid popul.../////////
viewHolder.setVideo(Uri.parse(String.valueOf(videoUri)),model.getVideo());
// Here the position is sent to videoview adapter
final String post_key = getRef( position ).getKey().toString();
final String post_id = String.valueOf(post_key);
viewHolder.setUid(model.getUid());
// Here the position is sent to videoview adapter
viewHolder.setVideo(post_id);
viewHolder.setUserprofile(getApplication(),model.getUserprofile());
}
yourAdpater ....
}
publicstaticclassViewHolderextendsRecyclerView.ViewHolder {
View mView;
Videoview post_video ;
publicViewHolder(View itemView) {
super(itemView);
mView = itemView;
post_video = (VideoView ) mView.findViewById(R.id.videoView);
}
publicvoidsetVideo(final String post_id) {
mDatabase.addValueEventListener(newValueEventListener() {
@OverridepublicvoidonDataChange(DataSnapshot dataSnapshot) {
// Uri uri=Uri.parse(dataSnapshot.child(post_id).child("video").getValue(true).toString());
//You can set up the video display as you like
post_video.setVideoURI(uri);
post_video.requestFocus();
post_video.start();
@OverridepublicvoidonCancelled(DatabaseError databaseError) {
}
});
}
The databases should look like this:
good luck.
Solution 3:
may be possible this by storing videos URLs in Database, then present them in Recyclerview which consists of Webview/Youtube Integration in Single row
Solution 4:
I had the same problem and the following solution worked for me:
Add this string to AndroidManifest.xml file
<uses-permissionandroid:name="android.permission.INTERNET" />
Post a Comment for "Load Video From Firebase Storage To Videoview"