本文章不进行学术交流,仅用来记录一下,以便以后用到的时候快速集成,当然也方便其他小白拿来就用。

集成这种第三方一来方便,重点官方写的是  播放器 SDK 属于免费产品

官网:https://cloud.tencent.com/document/product/881

这里只是进行简单的加载m3u8地址,进行播放监控的demo,并不使用官方提供的UI库,所以不需要导入  superplayerkit  这个module

而我习惯采用老方式的jar+so的方式,所以集成如下

1.导入jar与.so文件 到libs目录下

 

2.在app下的build.gradle文件中添加如下配置

defaultConfig {
       ...
        ndk {
            abiFilters "armeabi","armeabi-v7a"
        }
    }

    ...

    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }


...
dependencies{
   ...
   
    implementation files('libs\\liteavsdk.jar')
}
3.在视频layout布局文件下使用原生腾讯播放器组件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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=".MainActivity">

    <com.tencent.rtmp.ui.TXCloudVideoView
        android:id="@+id/vv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

4. 在播放界面

package com.demo.video;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.VideoView;

import com.tencent.rtmp.TXLiveConstants;
import com.tencent.rtmp.TXLivePlayer;
import com.tencent.rtmp.ui.TXCloudVideoView;

public class MainActivity extends AppCompatActivity {

    private TXCloudVideoView v;
    private TXLivePlayer mLivePlayer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        v=findViewById(R.id.vv);
        mLivePlayer = new TXLivePlayer(MainActivity.this);
//关键 player 对象与界面 view
        mLivePlayer.setPlayerView(v);
        mLivePlayer.setRenderMode(TXLiveConstants.RENDER_MODE_ADJUST_RESOLUTION);
        String url="https://xxxxx.m3u8";
        mLivePlayer.startPlay(url, TXLivePlayer.PLAY_TYPE_VOD_HLS); //推荐 FLV
    }

    @Override
    protected void onResume() {
        super.onResume();
        // 继续
        mLivePlayer.resumeAudio();
        mLivePlayer.resumeVideo();
    }

    @Override
    protected void onPause() {
        super.onPause();
        mLivePlayer.pauseAudio();
        mLivePlayer.pauseVideo();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mLivePlayer.stopPlay();
    }
}

别忘记加个最基本的上网权限

常用设置:

1.画面调整

setRenderMode:铺满或适应

可选值含义
RENDER_MODE_FULL_FILL_SCREEN将图像等比例铺满整个屏幕,多余部分裁剪掉,此模式下画面不会留黑边,但可能因为部分区域被裁剪而显示不全。
RENDER_MODE_ADJUST_RESOLUTION将图像等比例缩放,适配最长边,缩放后的宽和高都不会超过显示区域,居中显示,画面可能会留有黑边。

setRenderRotation:画面旋转

可选值含义
RENDER_ROTATION_PORTRAIT正常播放(Home 键在画面正下方)
RENDER_ROTATION_LANDSCAPE画面顺时针旋转270度(Home 键在画面正左方)

特别说明

视频云 SDK 不会对播放地址的来源做限制,即您可以用它来播放腾讯云或非腾讯云的播放地址。但视频云 SDK 中的播放器只支持 FLV 、RTMP 和 HLS(m3u8)三种格式的直播地址,以及 MP4、 HLS(m3u8)和 FLV 三种格式的点播地址。

附上这个简易demo地址:

https://download.csdn.net/download/qq_30548105/21778203?spm=1001.2014.3001.5503

本人个人原创,如有雷同,纯属巧合,或者与本人联系,做改动。请转载或者CV组合标明出处,谢谢!(如有疑问或错误欢迎指出,本人QQ:752231513)

Logo

致力于链接即构和开发者,提供实时互动和元宇宙领域的前沿洞察、技术分享和丰富的开发者活动,共建实时互动世界。

更多推荐