I want to play a video from my assets or raw folder
Asked Answered
N

6

15

I want to play a video from my assets or raw folder in my app in Android using VideoView I am getting the error as video cannot be played please anyone give me a solution.

Here is the code I used

VideoView vd = (VideoView)findViewById(R.id.Video);         
Uri uri = Uri.parse("android.resource:"  + R.raw.video);
MediaController mc = new MediaController(this);
vd.setMediaController(mc);
vd.setVideoURI(uri); 
vd.start();
Northnorthwest answered 19/9, 2010 at 15:48 Comment(1)
Hey @Macarse, could you kick me a solid and accept my top-voted answer on this question?Hammons
H
33

A few things to note:

  1. You must copy the video into your project's res/raw folder.
  2. It must be in a supported format (3gp, wmv, mp4 ) and named with lower case, numerics, underscores and dots in its filename: my_video_file.mp4
  3. When you work with this resource in code, you will reference through the generated R statics - it will have the file extension removed: R.raw.my_video_file
  4. The Activity class has a helper method getPackageName() which can be used by your code when constructing the correct URI to your video.
VideoView vv = (VideoView)this.findViewById(R.id.videoView)
String uri = "android.resource://" + getPackageName() + "/" + R.raw.my_video_file;
vv.setVideoURI(Uri.parse(uri));
vv.start();

There is more information on this here.

Hammons answered 1/2, 2011 at 4:36 Comment(5)
I have used VideoView to play video from raw folder, but video is not played in lower version below 2.3. It shows me error "Video cannot be played" please guide me where is the problem,as video plays in other versions.Herschel
When i rotate screen during play of video , it will start from first. So what i do to prevent it start from beginning ?Tearoom
@AnandSavjani You can't control that. When rotating the screen, android reloads the current activityElodea
You can keep track of where you are and pass the information along using the savedInstanceBundle developer.android.com/guide/topics/resources/…Admonition
The question is to play a video from Assets folder, not from Raw folder.Gennie
P
7

You must include the package name in the uri:

  Uri uri = Uri.parse("android.resource://[package]/raw/video")

or

  Uri uri = Uri.parse("android.resource://[package]/"+R.raw.video);

Also, check out these examples.

Pedroza answered 19/9, 2010 at 16:35 Comment(0)
H
2

There are so many ways to go wrong with VideoView ! Mainly because the logcat gives you no help, always giving error UNKNOWN.

I found this link was by far the best way to get started... A complete description so you can't go wrong. Thanks go to the author...

http://androidexample.com/Play_Video_File_-_Android_Example/index.php?view=article_discription&aid=124&aaid=144

Heathheathberry answered 26/3, 2014 at 20:30 Comment(2)
The link is dead! Unfortunately, I could strongly relate to what you said! I am struggling with video playback on Android for a while now, what I'm missing is a structured introduction to the topic, the Android Developer Guide doesnt help much here.... Would be great if you could find the content of the link again and update the post. (Could also be that the link is just temporarily unavailable...)Mahogany
Link seems to work for me. If you still have problems google "androidexample.com Play_Video_File_-_Android_Example"Heathheathberry
R
0

When we include a video resource in /resource/raw/ or assets/, by default, it looks for the .mp4 format, it won't accept .wmv files. If you read video file from external locations(like: /mnt/sdcard/demo.wmv) then it'll accept them.

Roustabout answered 8/3, 2013 at 7:39 Comment(0)
A
0

Try:

   AssetFileDescriptor afd = getAssets().openFd(fileName);
   player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(), afd.getLength());
Anastasia answered 11/11, 2013 at 10:18 Comment(0)
S
0

Make sure to write the file video name without extension.

Seamstress answered 19/12, 2013 at 10:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.