最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android實現(xiàn)視頻播放--騰訊瀏覽服務(wù)(TBS)功能

 更新時間:2018年07月30日 11:43:16   作者:ChaoYoung  
TBS視頻播放器可以支持市面上幾乎所有的視頻格式,包括mp4, flv, avi, 3gp, webm, ts, ogv, m3u8, asf, wmv, rm, rmvb, mov, mkv等18種視頻格式。這篇文章主要介紹了Android實現(xiàn)視頻播放--騰訊瀏覽服務(wù)(TBS),需要的朋友可以參考下

TBS視頻播放

  TBS視頻播放器可以支持市面上幾乎所有的視頻格式,包括mp4, flv, avi, 3gp, webm, ts, ogv, m3u8, asf, wmv, rm, rmvb, mov, mkv等18種視頻格式。同時支持硬件解碼,使得內(nèi)存占用,穩(wěn)定性相較于系統(tǒng)播放器都更優(yōu)。

接入TBS

1.導(dǎo)入jar文件和so文件

   官網(wǎng)SDK下載地址:https://x5.tencent.com/tbs/sdk.html,示例中有jar文件和so文件,具體導(dǎo)入方式我上一篇文章有詳細介紹(Android應(yīng)用內(nèi)展示office文件–騰訊瀏覽服務(wù)(TBS))

2.初始化Application

   自定義一個Application類,對X5內(nèi)核進行初始化

public class MyAppliction extends Application {
 @Override
 public void onCreate() {
 super.onCreate();
 //回調(diào)接口初始化完成接口回調(diào)
 QbSdk.PreInitCallback pcb=new QbSdk.PreInitCallback() {
  @Override
  public void onCoreInitFinished() {

  }
  @Override
  public void onViewInitFinished(boolean b) {
  //x5內(nèi)核初始化完成的回調(diào),為true表示x5內(nèi)核加載成功,否則表示x5內(nèi)核加載失敗,會自動切換到系統(tǒng)內(nèi)核。
  Log.e("myApplication", " x5內(nèi)核加載成功?" + b);
  }
 };

 //x5內(nèi)核預(yù)加載,異步初始化x5 webview所需環(huán)境
 QbSdk.initX5Environment(getApplicationContext(), pcb);
 }
}

  在AndroidManifest.xml進行聲明

<application android:name="com.example.xch.tbsvideoplay.MyAppliction"

3.使用

   直接在清單文件AndroidManifest.xml中配置SDK中的視頻播放Activity

<activity
 android:name="com.tencent.smtt.sdk.VideoActivity"
 android:alwaysRetainTaskState="true"
 android:configChanges="orientation|screenSize|keyboardHidden"
 android:exported="false"
 android:launchMode="singleTask">
 <intent-filter>
 <action android:name="com.tencent.smtt.tbs.video.PLAY" />

 <category android:name="android.intent.category.DEFAULT" />
 </intent-filter>
</activity>

  在代碼中直接調(diào)用TbsVideo.openVideo()播放

/**
 * 直接調(diào)用播放視頻
 * @param videoUrl 視頻地址
 */
private void startPlay(String videoUrl){
 //判斷當前是否可用
 if(TbsVideo.canUseTbsPlayer(getApplicationContext())){
 //播放視頻
 TbsVideo.openVideo(getApplicationContext(), videoUrl);
 }
}

4.添加權(quán)限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 硬件加速對X5視頻播放有利,建議開啟 -->
<uses-permission android:name="android.permission.GET_TASKS" />

效果圖

 優(yōu)化

  先看一下優(yōu)化之后的效果

 

自定義TBS的WebView,充分發(fā)揮X5內(nèi)核的作用

1.自定義webview

    需繼承TBS的webview,包一定不能導(dǎo)錯:com.tencent.smtt.sdk.WebView

public class X5WebView extends WebView {
 private WebViewClient client = new WebViewClient() {
 /**
  * 防止加載網(wǎng)頁時調(diào)起系統(tǒng)瀏覽器
  */
 public boolean shouldOverrideUrlLoading(WebView view, String url) {
  view.loadUrl(url);
  return true;
 }
 };
 @SuppressLint("SetJavaScriptEnabled")
 public X5WebView(Context arg0, AttributeSet arg1) {
 super(arg0, arg1);
 this.setWebViewClient(client);
 initWebViewSettings();
 this.getView().setClickable(true);
 }
 /**
 * 初始化webview設(shè)置
 */
 private void initWebViewSettings() {
 WebSettings webSetting = this.getSettings();
 ...
 }
 /**
 * 這里可以為自定義webview繪制背景或文字
 * @param canvas
 * @param child
 * @param drawingTime
 * @return
 */
 @Override
 protected boolean drawChild(Canvas canvas, View child, long drawingTime) {
 boolean ret = super.drawChild(canvas, child, drawingTime);
 canvas.save();
 ...
 return ret;
 }
 public X5WebView(Context arg0) {
 super(arg0);
 setBackgroundColor(85621);
 }
}

2.布局中使用自定義WebView

<com.example.xch.tbsvideoplay.tools.X5WebView
 android:id="@+id/x5_webview"
 android:layout_width="match_parent"
 android:layout_height="200dp"
 android:scrollbars="none" />

3.使用自定義WebView播放視頻

/**
 * 使用自定義webview播放視頻
 * @param vedioUrl 視頻地址
 */
private void startPlay(String vedioUrl) {
 x5webView.loadUrl(vedioUrl);
 getWindow().setFormat(PixelFormat.TRANSLUCENT);
 x5webView.getView().setOverScrollMode(View.OVER_SCROLL_ALWAYS);
 x5webView.setWebChromeClient(new WebChromeClient());
} 

4.支持橫豎屏切換

  在AndroidManifest.xml中給當前Activity配置configChanges屬性

<activity
 android:name="com.example.xch.tbsvideoplay.VideoPlayActivity"
 android:configChanges="orientation|screenSize|keyboardHidden"/>

源碼已上傳至GitHub,需要的可以下載: https://github.com/yangxch/TBSVideoPlay

總結(jié)

以上所述是小編給大家介紹的Android實現(xiàn)視頻播放--騰訊瀏覽服務(wù)(TBS),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論

东城区| 金坛市| 三门峡市| 绵竹市| 杭锦后旗| 花垣县| 易门县| 文水县| 石屏县| 丁青县| 辛集市| 廊坊市| 牙克石市| 沂水县| 平顶山市| 芜湖市| 巴林右旗| 泰州市| 利辛县| 德化县| 丹东市| 新巴尔虎左旗| 龙里县| 惠来县| 马鞍山市| 北京市| 神木县| 遵义市| 北安市| 乌兰县| 东安县| 五河县| 柯坪县| 梁平县| 宝山区| 潞西市| 丽水市| 廊坊市| 武隆县| 天镇县| 东明县|