Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Video not playing in Android

Video not working properly in the below mentioned code. What could be the problem for this?

MediaController mediaController = new MediaController(getBaseContext());
mediaController.setAnchorView(videoweb);

Uri video = Uri.parse("http://www.youtube.com/v/wwI2w2YHkCQ?fs=1");
videoweb.setMediaController(mediaController);
videoweb.setVideoURI(video);
videoweb.start();

Error:

Cannot play video
Sorry,this video cannot be played.

like image 208
Jack Dsilva Avatar asked Jan 04 '12 11:01

Jack Dsilva


2 Answers

The link you have provided, http://www.youtube.com/v/wwI2w2YHkCQ?fs=1, is for an HTML page. The URI to be provided for setVideoURI() should be a media file such as MP4 or AVI.

VideoView cannot parse a HTML page. It can only decode and play a video file or stream a video content (in this case the URI should point to the media file, such as http://people.sc.fsu.edu/~jburkardt/data/mp4/cavity_flow_movie.mp4). See Stack Overflow question Using VideoView for streaming or progressive-download video.

You should use a Webview for opening the YouTube link.

like image 81
Karthik Avatar answered Sep 19 '22 05:09

Karthik


VideoView and Mediaplayer can play only formats given in the document Android Supported Media Formats.

The link of the YouTube video you gave is for an HTML page. If you are playing an HTML page as mentioned by Karthik, it is better to use Webview.

String url = "your_youtube_link";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

If you want only the video to be viewed from that link, leave all other details in the page. Suppose this is the YouTube link http://www.youtube.com/watch?v=ZC7ZOGpM2cU&feature=g-logo&context=G233b464FOAAAAAAABAA

If you parse the source of the YouTube HTML page, you may see this portion:

<link rel="alternate" type="application/json+oembed" href="http://www.youtube.com/oembed?url=http%3A//www.youtube.com/watch?v%3DZC7ZOGpM2cU&amp;format=json" title="Bigg Boss 5: Juhi Parmar wins Big Boss season 5">
<link rel="alternate" type="text/xml+oembed" href="http://www.youtube.com/oembed?url=http%3A//www.youtube.com/watch?v%3DZC7ZOGpM2cU&amp;format=xml" title="Bigg Boss 5: Juhi Parmar wins Big Boss season 5">
<meta property="fb:app_id" content="87741124305">
<meta property="og:url" content="http://www.youtube.com/watch?v=ZC7ZOGpM2cU">
<meta property="og:title" content="Bigg Boss 5: Juhi Parmar wins Big Boss season 5">
<meta property="og:description" content="Ntv News: Juhi Parmar wins Bigg Boss 5 - Juhi Parmar wins &#39;Bigg Boss 5&#39;, takes home Rs.1 crore - No kid for now, keen for good work: Juhi Parmar">
<meta property="og:type" content="video">
<meta property="og:image" content="http://i3.ytimg.com/vi/ZC7ZOGpM2cU/hqdefault.jpg">
<meta property="og:video" content="http://www.youtube.com/v/ZC7ZOGpM2cU?version=3&amp;autohide=1">
<meta property="og:video:type" content="application/x-shockwave-flash">
<meta property="og:video:width" content="396">
<meta property="og:video:height" content="297">
<meta property="og:site_name" content="YouTube">

In this, extract the following

<meta property="og:video" content="http://www.youtube.com/v/ZC7ZOGpM2cU?version=3&amp;autohide=1">

In this, the <http://www.youtube.com/v/ZC7ZOGpM2cU?version=3&amp;autohide=1> link will show it fullscreen.

like image 29
sonu thomas Avatar answered Sep 19 '22 05:09

sonu thomas