Android 使用腾讯sdk播放视频
1.下载官方sdk
点击下载
拿到需要使用到的文件
将文件放在指定的位置
如何在build.gradle文件输入下面的代码导入jar包
implementation fileTree(dir: 'libs', include: ['*.jar'])
导包成功,该jar文件出现一个三角形
2.创建MyApplication.class文件
输入以下语法
package com.example.day_01;
import android.app.Application;
import android.util.Log;
import com.tencent.smtt.sdk.QbSdk;
public class MyApplication 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进行声明
3.添加权限
<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" />
4.清单文件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>
注:如果遇到模拟机或者真机测试无网络,请在AndroidManifest.xml文件下输入下面代码
android:usesCleartextTraffic="true"
横屏播放视频,请在AndroidManifest.xml文件下输入下面代码
android:configChanges="orientation|screenSize|keyboardHidden"
5.实现功能
(1)找到下载的sdk包下的java文件
创建tools目录,复制粘贴到该目录下
(2)配置activity_main.xml文件
报错忽略
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.day_01.MainActivity">
<com.example.day_01.tools.X5WebView
android:id="@+id/x5_webview"
android:layout_width="match_parent"
android:layout_height="200dp"
android:scrollbars="none">
</com.example.day_01.tools.X5WebView>
</androidx.constraintlayout.widget.ConstraintLayout>
(3)在MainActivity.java文件输入下面代码
package com.example.day_01;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.example.day_01.tools.X5WebView;
import com.example.xch.tbsvideoplay.R;
import com.tencent.smtt.sdk.WebChromeClient;
public class MainActivity extends AppCompatActivity {
private X5WebView x5webView;
private String videoUrl="https://vodkgeyttp8.vod.126.net/cloudmusic/ec3e/core/76fd/4345f88037c5520bb00d84130796220f.mp4?wsSecret=9398df69d20d5da20ce02e9237b2f350&wsTime=1619354212";//视频地址(运行时请确认此链接是否还可用,如不可用换一个就行)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
x5webView = findViewById(R.id.x5_webview);
startPlay(videoUrl);
}
/**
* 使用自定义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)运行测试
6.源代码
https://download.csdn.net/download/Scxioi0/17931319