views:

610

answers:

4

Can anyone shed any light on why I'm unable to click and play a youtube clip on an Android handset when placed inside a webview?

I've put a very simple app together (it's being extended, but no right away) and it has a web view assigned using the Android SDK.

The rest of the webview works as expected (text, images, css etc), however, the YouTube clips will not show, they just show as black or white rectangles (where the video embed should be).

We use the same view to display content on the iPhone app equivalent, without any issues.

This is using a basic flash embed, the Safari browser on iPhone converts these to H.264 and plays them nicely in QuickTime.

Can Android do the same??

Here is the embed code, as an example....

<object width="120" height="73"><param name="movie" value="http://www.youtube.com/watch?v=ZVYIBIlTIQs&amp;feature=youtube_gdata"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/watch?v=ZVYIBIlTIQs&amp;feature=youtube_gdata" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="120" height="73"></embed></object>
A: 

You would need to have the flash player, which is only available since Android 2.2 (Froyo).

Mathias Lin
OK, are you aware of any other way of embedding YouTube clips with Android? Using HTML5 will require the user to sign up to the beta program, which isn't ideal
Simon Hume
so you want to display multiple videos in the webview, not only one,right? otherwise i would have said to open the video in youtube app via intent, since youtube is by default on almost any device.
Mathias Lin
I use the YouTube API to pull back a dynamic list of clips from a playlist. I did find a post on here mentioning turning on the plugins using webview.setPluginsEnabled(true);
Simon Hume
yes, this you would need to have enabled anyway, but without a plugin, even this flag doesn't help much.
Mathias Lin
think i'm going to have to write it in java instead!http://www.javacodegeeks.com/2010/05/getting-started-with-youtube-java-api.html
Simon Hume
A: 

Unless the user has Froyo this is going to be impossible. However as long as the user has the YouTube app installed (which is standard for most phones I believe) then you can include a link to the YouTube video, and Android will recognize it as such and open it using the YouTube app. It's not as elegant as embedding, but it's much more reliable.

fredley
A: 

I am not sure if this is what you need. Anyway I hope the following be useful. You can use the iframe method that youtube provides to play its videos. If the browser supports html5 will show the video with it, otherwise with flash.

You can use the following code as an example <iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/bIPcobKMB94" frameborder="0">

in the above example the video id is bIPcobKMB94. You can change this id and show your video.

You can access a live example of it here

More infromation for youtube iframe

YouTube HTML5 Video Player

Sotiris
This seems to do the trick! Thanks for taking the time to post it, a great help
Simon Hume
A: 

Hi fredley,

If you play youtube video in Opera mini browser for lower version than Android 2.2, it works great. So my question is How does Opera mini plays the videos in lower versions too?

Looking for the solution...

Bharat Dodeja www.openxcell.com

Bharat Dodeja