經過webview打開HTML5頁面用本身的瀏覽器點直播MP4和M3U8

如標題所示,借用webview的功用,咱們能夠快速的開發一款功能不是太多的視頻點直播客戶端html

可是因爲android 對HTML5種Video標籤支持的不怎麼友好,因此在不用android 瀏覽器(處理videod的類html5

只支持瀏覽器,能夠看看API)或者你沒有本身對video進行詳細處理{有興趣的朋友能夠看看一下的框架主要包含三種類型的類對象
  一類是video元素類(HTMLElement, HTMLMediaElement,HTMLVideoElement)

  第二類是架構類和接口(MediaPlayerClient,MediaPlayer,MediaPlayerPrivateInterface);android

  第三類是具體實現播放功能的類(MediaPlayerPrivate, HTML5VideoviewProxy ).該部分是我能夠移植的,能夠添加本身的播放類.}的話,最可能出現的狀況是咱們點擊頁面中video的的時候,它變一下色而後就不鳥你了,你想見的視頻畫面只能停留在下一秒的想象中了,何況咱們是想用本身的播放組件播放M3u8這種在android中比較麻煩的視頻格式,咱們可能須要從頁面中單擊video後獲的視頻資源的URI地址就能夠了,那麼如今咱們面對的問題就是簡單的頁面傳值到播放組件的問題了,這樣就簡單一些了,我採用的方式是,採用JS,在頁面中用簡單的JS代碼得到如下視頻的URI,而後做爲參數傳到後臺,android中webview能夠讓你添加自定義的JavascriptInterface(如: webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(myjsInterface, "JSInterface"))web

只要在<video>標籤的點擊事件中調用myjsInterface的方法並經過這個方法把視頻的URI傳遞過來就達到咱們的目的了,這樣的話咱們就能夠循序漸進的把得到的URI傳給咱們的播放組件進行播放。myjsInterface在JS 中的調用方法能夠簡單的寫成這樣瀏覽器

{架構

<video onclick="playVideo('http://192.168.121.121/test.m3u8')"/>框架

function playVideo(video){ window.JSInterface.startVideo(video);}ide

}
this

 

public class MyJSInterface {
    private Activity activity;

    public MyJSInterface (Activity activiy) {
        this.activity = activiy;
    }

    public void startVideo(String videoAddress){
        Toast.makeText(activity, videoAddress, Toast.LENGTH_LONG).show();
      
    }
}spa

具體能夠看http://stackoverflow.com/questions/1711078/html5-video-element-on-android

相關文章
相關標籤/搜索