Venkat
Venkat

Reputation: 3457

how to play vimeo video using iframe in webview?

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebView wv=(WebView)findViewById(R.id.webView1);

        wv.getSettings().setJavaScriptEnabled(true);
        wv.getSettings().setAppCacheEnabled(true);
        wv.getSettings().setDomStorageEnabled(true);

        // how plugin is enabled change in API 8
        if (Build.VERSION.SDK_INT < 8) {
          wv.getSettings().setPluginsEnabled(true);
        } else {
          wv.getSettings().setPluginState(PluginState.ON);
        }
        String venkat="<iframe src=\"http://player.vimeo.com/video/27244727?portrait=0&color=333\" width=\"WIDTH\" height=\"HEIGHT\" frameborder=\"0\" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>";
        wv.loadData(venkat,"text/html","UTF-8");
    }
}

After researching from google I have written the above code but is not working. In this no errors are occurred but when I click on the play button progress bar is displaying for sometime and then it disappears and displays play button again... Could anyone please suggest me how to solve this problem?

Upvotes: 11

Views: 13494

Answers (4)

Tolumide
Tolumide

Reputation: 984

const TheVideo = (props) => {
 const getVimeoUrl = (uri: string): string => {
        const value = uri.split("/");
        return value[value.length - 1];
    };
    enter code here

return (<>
 <iframe
                        src={
                            props.specificVideo?.url
                                ?.split("/")[2]
                                .startsWith("vimeo")
                                ? `https://player.vimeo.com/video/${getVimeoUrl(
                                      props.specificVideo?.url
                                  )}`
                                : props.specificVideo?.url ?? ""
                        }
                        width="{video_width}"
                        height="{video_height}"
                        frameBorder="0"
                        title={props.specificVideo?.title ?? ""}
                        className="specvideoview-frame"
                    ></iframe>
</>)
}

Upvotes: 0

user285594
user285594

Reputation:

Do this:

<iframe src="//player.vimeo.com/video/VIDEO_ID" 
        width="515" 
        height="340" 
        frameborder="0" 
        webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>

Upvotes: 2

anu gupta
anu gupta

Reputation: 117

You have to enable the hardware accelaration feature in andorid manifest. To work vimeo video on all devices, bec vimeo video is html5 type of video.

And here is link of vimeo video play which is working perfectly.

Upvotes: 1

Abhi
Abhi

Reputation: 9005

webView = (WebView)findViewById(R.id.presentation_webview);

        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setAllowFileAccess(true);
        webView.getSettings().setPluginsEnabled(true);
        webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY); 

        DisplayMetrics displaymetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
        int height = displaymetrics.heightPixels;
        int wwidth = displaymetrics.widthPixels;

        Log.e("h & w",wwidth+"-"+height);

        String data_html = "<!DOCTYPE HTML> <html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:og=\"http://opengraphprotocol.org/schema/\" xmlns:fb=\"http://www.facebook.com/2008/fbml\"> <head></head> <body style=\"margin:0 0 0 0; padding:0 0 0 0;\"> <iframe width='"+wwidth+"' height='"+height+"' src=\"http://player.vimeo.com/video/"+VIDEO_ID+"\" frameborder=\"0\"></iframe> </body> </html> ";

        webView.setWebViewClient(new MyWebViewClient());

        webView.loadDataWithBaseURL("http://vimeo.com", data_html, "text/html", "UTF-8", null); 

Try the above code and use device width and height to play the video.

Upvotes: -1

Related Questions