详情页标题前

腾讯云云点播集成指引

详情页1

环境准备

Flutter 3.0 及以上版本。Android 端开发:Android Studio 3.5及以上版本。App 要求 Android 4.1及以上版本设备。iOS 端开发:Xcode 11.0及以上版本。OSX 系统版本要求 10.11 及以上版本。请确保您的项目已设置有效的开发者签名。

SDK 下载

腾讯云视立方 Flutter 播放器项目的地址是 Player Flutter

快速集成

在项目的 pubspec.yaml 中添加依赖

支持基于 LiteAVSDK Player 或 Professional 版本集成,您可以根据项目需要进行集成。1. 集成 LiteAVSDK_Player 版本最新版本,默认情况下也是集成此版本。在pubspec.yaml中增加配置:

super_player:  git:    url: https://github.com/LiteAVSDK/Player_Flutter    path: Flutter

集成 LiteAVSDK_Professional 最新版本,则pubspec.yaml中配置改为:

super_player:  git:    url: https://github.com/LiteAVSDK/Player_Flutter    path: Flutter    ref: Professional

如果需要集成指定播放器版本的 SDK,可以指定通过 ref 依赖的 tag 来指定到对应版本,如下所示:

super_player:  git:    url: https://github.com/LiteAVSDK/Player_Flutter    path: Flutter    ref: release_player_v1.0.6 
# release_player_v1.0.6 表示将集成Android端TXLiteAVSDK_Player_10.6.0.11182 版本,iOS 端集成 TXLiteAVSDK_Player_10.6.11821 版本

更多归档的 tag 请参考 release 列表2. 集成之后,可以通过代码编辑器自带的 UI 界面来获取 Flutter 依赖,也可以直接使用如下命令获取:

flutter packages get

3. 使用过程中,可以通过以下命令来更新现有 Flutter 依赖:

flutter pub upgrade

添加原生配置

Android 端配置

1. 在 Android 的AndroidManifest.xml中增加如下配置:

网络安全配置允许 App 发送 http 请求出于安全考虑,从 Android P 开始,Google 要求 App 的请求都使用加密链接。播放器 SDK 会启动一个 localsever 代理 http 请求,如果您的应用 targetSdkVersion 大于或等于28,可以通过 网络安全配置 来开启允许向127.0.0.1发送 http 请求。 否则播放时将出现 “java.io.IOException: Cleartext HTTP traffic to 127.0.0.1 not permitted” 错误, 导致无法播放视频。配置步骤如下:1.1 在项目新建 res/xml/network_security_config.xml 文件,设置网络安全性配置。

            127.0.0.1    

1.2 在 AndroidManifest.xml 文件下的 application 标签增加以下属性。

                        ... >        ...    

2. 确保 Android 目录下的 build.gradle 使用了 mavenCenter,能够成功下载到依赖。

repositories {  mavenCentral()}

3. 配置 Android 最小 SDK 版本,由于 flutter 默认配置的 Android 最小版本过低,需要手动更改为至少19,如果需要使用画中画能力,compileSdkVersion 和targetSdkVersion 则需要修改为至少31。

compileSdkVersion 31defaultConfig {    applicationId "com.tencent.liteav.demo"    minSdkVersion 19    targetSdkVersion 31    versionCode flutterVersionCode.toInteger()    versionName flutterVersionName}

4. AndroidManifest.xml根节点 manifest 标签内增加如下配置xmlns:tools="http://schemas.android.com/tools",示例如下:


<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.example.player"> 

application 节点下增加tools:replace="android:label",示例如下:

    android:label="super_player_example"    android:icon="@mipmap/ic_launcher"    android:requestLegacyExternalStorage="true"    tools:replace="android:label">

5. 如果需要更新原生 SDK 依赖版本,可手动删除 Android 目录下的 build 文件夹,也可以使用如下命令强制刷新。

./gradlew build

iOS 端配置

注意:iOS 端目前暂不支持模拟器运行调试,建议在真机下进行开发调试1. 在 iOS 的Info.plist中增加如下配置:

NSAppTransportSecurity NSAllowsArbitraryLoads 

2. iOS 原生采用pod方式进行依赖,编辑podfile文件,指定您的播放器 SDK 版本,默认集成的是 Player 版 SDK。

pod 'TXLiteAVSDK_Player'	        //Player版

Professional 版 SDK 集成:

pod 'TXLiteAVSDK_Professional' 	//Professional版

如果不指定版本,默认会安装最新的TXLiteAVSDK_Player最新版本。3. 部分情况下(如:发布了新版本),需要强制更新 iOS 播放器依赖,可以在 iOS 目录下使用如下命令进行更新:

rm -rf Podsrm -rf Podfile.lockpod update

集成播放器 License

若您已获得相关 License 授权,需在 腾讯云视立方控制台 获取 License URL 和 License Key:

腾讯云云点播集成指引


若您暂未获得 License 授权,需先参见
播放器License 获取相关授权。集成播放器前,需要 注册腾讯云账户 ,注册成功后申请播放器 License, 然后通过下面方式集成,建议在应用启动时进行。如果没有集成 License,播放过程中可能会出现异常。

String licenceURL = ""; // 获取到的 licence urlString licenceKey = ""; // 获取到的 licence keySuperPlayerPlugin.setGlobalLicense(licenceURL, licenceKey);

深度定制开发指引

腾讯云播放器 SDK Flutter 插件对原生播放器能力进行了封装, 如果您要进行深度定制开发,建议采用如下方法:基于点播播放,接口类为TXVodPlayerController 或直播播放,接口类为TXLivePlayerController,进行定制开发,项目中提供了定制开发 Demo,可参考 example 工程里的DemoTXVodPlayerDemoTXLivePlayer播放器组件SuperPlayerController 对点播和直播进行了封装,同时提供了简单的 UI 交互, 由于此部分代码在 example 目录。如果您有对播放器组件定制化的需求,您可以进行如下操作:把播放器组件相关的代码,代码目录:Flutter/superplayer_widget,导入到您的项目中,进行定制化开发。

常见问题

1. iOS 端运行,出现 No visible @interface for 'TXLivePlayer' declares the selector 'startLivePlay:type:'等类似找不到接口错误。
可以使用如下命令,更新 iOS SDK:

rm -rf Podsrm -rf Podfile.lockpod update

2. 同时集成 tencent_trtc_cloud 和 Flutter 播放器出现 SDK 或 符号冲突。常见异常日志:java.lang.RuntimeException: Duplicate class com.tencent.liteav.TXLiteAVCode found in modules classes.jar此时需要集成flutter 播放器的 Professional 版本,让tencent_trtc_cloud 和 flutter 播放器共同依赖于同一个版的 LiteAVSDK_Professional。注意确保依赖的LiteAVSDK_Professional 的版本必须一样。如:依赖 Android 端 TXLiteAVSDK_Professional_10.3.0.11196 和 iOS 端TXLiteAVSDK_Professional to 10.3.12231 版本,依赖声明如下:

tencent_trtc_cloud:2.3.8
super_player: git: url: https://github.com/LiteAVSDK/Player_Flutter path: Flutter ref: release_pro_v1.0.3.11196_12231

3. 需要同时使用多个播放器实例的时候,频繁切换播放视频,画面呈现模糊。
在每个播放器组件容器销毁的时候,调用播放器的
dispose方法,将播放器释放。
4. 其余通用 Flutter 依赖问题:执行flutter doctor命令检查运行环境,直到出现”No issues found!“。执行flutter pub get确保所有依赖的组件都已更新成功。5. 集成 superPlayer 之后,出现如下 manifest 错误:

Attribute application@label value=(super_player_example) from AndroidManifest.xml:9:9-45is also present at [com.tencent.liteav:LiteAVSDK_Player:10.8.0.13065] AndroidManifest.xml:22:9-41 value=(@string/app_name).Suggestion: add 'tools:replace="android:label"' to  element at AndroidManifest.xml:8:4-51:19 to override.

解决方法:由于播放器 Android SDK 的 AndroidManifest 已经定义过 label,而 flutter 新建项目之后,在 Android 目录的 AndroidManifest 也会定义 label,此处建议根据错误提示,进入您的 Android 项目目录,在 AndroidManifest 的根节点manifest节点下增加xmlns:tools="http://schemas.android.com/tools",并在 application 节点下增加tools:replace="android:label"6. 集成 superPlayer 之后,出现如下版本错误:

uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library [:super_player]

解决方法:目前播放器 Android SDK 最小支持版本为 android 19,flutter 部分版本默认 Android 最小支持版本为 android 16。建议您将最小支持版本提高到 android 19。具体修改方法为:进入您的 Android 项目的主 module 下,一般为app目录,将该目录下的build.gradle中的minSdkVersion修改为19。7. 如何提取播放器 SDK 的运行 Log ?解决方法:播放器 SDK 默认把运行的 log 输出到本地文件,腾讯云技术支持 在帮忙定位问题时,需要这些运行 log 分析问题。Andorid 平台 log 保存在目录:/sdcard/Android/data/packagename/files/log/tencent/liteav,iOS 平台 log 保存在目录:sandbox的Documents/log 。更详细的 log 提取可参考 此教程8. 如何减少控制台 log 输出?解决方法:可以通过下面的接口设置 log 输出级别:SuperPlayerPlugin.setLogLevel(TXLogLevel.LOG_LEVEL_NULL),支持以下 log 级别:

class TXLogLevel {  static const LOG_LEVEL_VERBOSE = 0; // 输出所有级别的log  static const LOG_LEVEL_DEBUG = 1; // 输出 DEBUG,INFO,WARNING,ERROR 和 FATAL 级别的log  static const LOG_LEVEL_INFO = 2; // 输出 INFO,WARNNING,ERROR 和 FATAL 级别的log  static const LOG_LEVEL_WARN = 3; // 输出WARNNING,ERROR 和 FATAL 级别的log  static const LOG_LEVEL_ERROR = 4; // 输出ERROR 和 FATAL 级别的log  static const LOG_LEVEL_FATAL = 5; // 只输出FATAL 级别的log  static const LOG_LEVEL_NULL = 6; // 不输出任何sdk log}

9. 项目使用过程中,出现原生相关报错,例如错误: 不兼容的类型`、`error: initializing 'BOOL' (aka 'bool') with an expression of incompatible type 'void'等错误,是由于SDK 更新,导致 SDK 与 flutter 端原生代码不兼容。此时只需要更新 SDK 版本即可。解决方法:在项目目录下,打开终端,依次输入如下命令:

flutter pub cache cleanflutter cleanflutter pub upgradeflutter pub get

确保命令执行成功,更新本地 flutter 依赖。然后在 ios 目录下,打开终端,输入如下命令,更新 iOS 依赖:

rm -rf Podsrm -rf Podfile.lockpod update

如果问题依然存在,可以尝试删除项目 build 文件夹,并且手动删除您电脑中的 flutter 依赖缓存文件夹.pubcache。然后重新刷新 flutter pub 依赖再进行编译运行。

更多功能

您可以通过运行项目中的 example 体验完整功能,example 运行指引。播放器 SDK 官网提供了 iOS、Android 和 Web 端的 Demo 体验,请单击这里
云点播官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/144008.html

(0)
上一篇 2023年12月9日 上午1:40
下一篇 2023年12月9日 上午1:40
详情页2

相关推荐

  • 腾讯云对象存储清理碎片 – abort

    abort 命令用于清理分块上传过程中产生的文件碎片。 命令格式 ./coscli abort cos://[/prefix/] [flag] abort 命令包含以下参数: 参数格式 参数用途 示例 cos:/// 指定需要存储桶中的对象。支持使用 配置参数 中的桶别名,或桶名称进行访问。如使用桶名称访问,需要额外携带 endpoint flag。 使用桶…

    腾讯云 2023年12月9日
  • 腾讯云云点播功能说明

    播放器 SDK 提供直播、点播场景的视频播放能力,支持 Web/H5、iOS、Android、Flutter 等平台,支持的功能详情如下: 功能模块 功能项 功能简介 Web iOS & Android Flutter 播放协议/格式 点播或直播支持 同时支持点播播放和直播播放能力 ✓ ✓ ✓  支持的直播播放格式 支持 RTMP、FLV、HLS、…

    腾讯云 2023年12月9日
  • DataWorks将一个数据库下38张分表(同表结构)周期性全量同步到一个表,这是怎么回事呢?-云小二-阿里云

    DataWorks将一个数据库下38张分表(同表结构)周期性全量同步到一个表,我按照这样配置后,发现有bug啊,我最终的任务只有一个源表同步到目标表了啊,其他37张源表怎么不见了?这是怎么回事呢?

    2023年12月23日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLS常见问题-云淘科技

    vector cannot contain metrics with the same labelset错误 原因一:__labels__字段值中的LabelName不符合字母序。 写入MetricStore的__labels__字段由多组Label (LabelName#$#LabelValue)组成,且所有Label之间使用竖线(|)连接。在时序标识中,…

    2023年12月10日
  • 阿里云负载均衡如何处理健康检查导致的大量日志-云淘科技

    负载均衡的日志管理功能会自动保存三天内的健康检查日志,如果健康检查日志过多,对您的运维工作造成不便,本文以CLB为例为您介绍,您可以选择以下方案来减少或禁止某些场景下健康日志的产生。 说明 减少健康检查日志的数量可能会导致您无法及时发现负载均衡实例运行时所出现的问题,请您谨慎权衡每种方案所带来的风险,根据您的实际情况进行选择。 获取访问日志 调整健康检查频率…

    2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。