91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android如何實現視頻播放--騰訊瀏覽服務TBS功能

發布時間:2021-04-17 09:39:29 來源:億速云 閱讀:372 作者:小新 欄目:移動開發

這篇文章將為大家詳細講解有關Android如何實現視頻播放--騰訊瀏覽服務TBS功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

TBS視頻播放

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

接入TBS

1.導入jar文件和so文件

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

2.初始化Application

   自定義一個Application類,對X5內核進行初始化

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

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

 //x5內核預加載,異步初始化x5 webview所需環境
 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>

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

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

4.添加權限

<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" />

效果圖

Android如何實現視頻播放--騰訊瀏覽服務TBS功能

 優化

  先看一下優化之后的效果

Android如何實現視頻播放--騰訊瀏覽服務TBS功能

 Android如何實現視頻播放--騰訊瀏覽服務TBS功能

自定義TBS的WebView,充分發揮X5內核的作用

1.自定義webview

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

public class X5WebView extends WebView {
 private WebViewClient client = new WebViewClient() {
 /**
  * 防止加載網頁時調起系統瀏覽器
  */
 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設置
 */
 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"/>

關于“Android如何實現視頻播放--騰訊瀏覽服務TBS功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

信宜市| 万山特区| 子洲县| 浦江县| 房山区| 隆德县| 德格县| 衡水市| 南溪县| 怀来县| 松潘县| 大宁县| 兴仁县| 蓝田县| 互助| 嘉黎县| 盘山县| 翁源县| 中超| 武安市| 宁晋县| 邢台县| 宁河县| 和政县| 佛坪县| 襄城县| 云霄县| 客服| 岑溪市| 漳州市| 乐东| 仙居县| 石渠县| 南陵县| 财经| 鱼台县| 尚义县| 临邑县| 老河口市| 西和县| 陇南市|