从1.x.x SDK迁移到2.x.x版本指南
Android Media SDK在2.0.0版本对接口、方法和类进行了大幅改动。如果您正在使用2.0.0以下版本,建议通过本文提供的方法升级至2.0.0以上版本。
1.x.x版本文档详细内容,请参见Android应用端接入。
重要变化
功能项 | 1.x.x版本 | 2.x.x版本 |
渲染组件支持 | 支持TextureView和GLSurfaceView两种组件。 | 只提供TextureView,不再支持GLSurfaceView组件。 |
直播播放器 | LivePlayer。 | 改名为LVLivePlayer。 |
点播播放器 | 卡录像点播播放器为VodPlayer。 云存录像播放器为HlsPlayer。 | 不再区分卡录像点播和云存录像点播,统一为LVVodPlayer,自动识别设置的数据源来完成相应的转换。 |
语音对讲 | LiveIntercomV2。 | 改名为LVLiveIntercom。 |
升级步骤
gradle集成方式与版本类似,修改版本号即可,混淆配置无变化。
从2.0.0开始,linkvisual-media不再默认依赖ExoPlayer,如果您还需要使用继续使用ExoPlayer请在依赖中添加如下代码。
implementation('com.google.android.exoplayer:exoplayer-core:2.10.5')
implementation('com.google.android.exoplayer:exoplayer-ui:2.8.3')
implementation('com.google.android.exoplayer:exoplayer-hls:2.10.5')
混淆配置中添加如下代。
-dontwarn com.google.android.exoplayer2.**
API变化细节(建议通过文本搜索来定位)
全局组件
变更细节 | 1.x.x | 2.x.x | 修改建议 |
包名与类名变更。 |
|
| 更新包名与类名。 |
直播播放器
变更细节 | 1.x.x | 2.x.x | 修改建议 |
包名与类名变更。 |
|
| 更新包名与类名。 |
设置加密的直播数据源中设置的decryptIv和decryptKey从Base64解码后的二进制数据改为解码器前的字符串。 |
|
| 重要 将Base64解码去除,由SDK内部来完成对Base64字符串的解码。 |
接口移除:移除prepare步骤。 |
| 无。 | 设置数据源后,在播放 |
指令接口,如 | 无。 | 返回值枚举:
| 可以通过判断返回值作为接口操作是否成功的判断。 |
新增接口:获取当前码流的宽高。 | 无。 |
| 无。 |
类名变更:解码器策略和解码器类型枚举。 |
|
| 修改类名。 |
接口变更:取消设置音量接口改为静音和取消静音接口。 |
|
| 不支持应用内单独控制播放音量,音量控制统一交由系统音量来完成。 |
新增接口:增加音频焦点接口。 | 无。 |
| 从2.0.0开始,SDK不再支持多路音频同时播放,最多只有一路音频播放。当存在多路观看(如NVR多分屏)场景时,请由用户来调用播放器的 |
接口移除:移除音频播放流通道设置接口。 |
| 无。 | 直播播放器始终使用 |
接口移除:移除对GLSurfaceView的支持。 |
| 无。 | 请替换为TextureView,相比GLSurfaceView有以下优势:
|
接口变更:设置画面缩放模式接口参数调整。 |
|
| 修改参数名和类名。 |
接口变更:边播边录。 |
|
|
|
接口移除:设置播放停止时画面行为接口。 |
| 无。 | 无。 |
接口变更:获取播放状态接口。 |
|
| 播放器状态由int改为枚举值,方便理解和维护。 |
接口变更:获取当前流连接类型接口。 |
|
| 修改类名。 |
接口变更:获取当前播放帧率或码率信息接口。 |
|
| 修改类名。 |
接口变更:设置直播播放器回调接口。 |
|
| 将多个Listener合并为一个。 |
接口变更:设置使用外部渲染接口。 |
|
| 从2.0.0开始,除了支持视频YUV数据回调之外,还支持音频PCM回调。 |
接口变更:获取一帧YUV数据接口。 |
|
| 修改接口名。 |
点播播放器
变更细节 | 1.x.x | 2.x.x | 修改建议 |
包名与类名变更. |
|
| 更新包名与类名。从2.0.0开始,SDK将设备卡录像点播播放器和云存播放器统一为一种播放器。 |
设置加密的设备卡录像点播数据源中设置的decryptIv和decryptKey从Base64解码后的二进制数据改为解码器前的字符串。 |
|
| 重要 将Base64解码去除,由SDK内部来完成对Base64字符串的解码。 |
接口移除:移除prepare步骤。 |
| 无。 | 设置数据源后,在播放 |
指令接口,如 | 无。 | 返回值枚举:
| 可以通过判断返回值作为接口操作是否成功的判断。 |
新增接口:增加单独的播放恢复接口。 |
|
| 从2.0.0 SDK开始,点播播放恢复接口不再与 |
接口名调整:获取点播播放时长。 |
|
| 修改接口名。 |
新增接口:获取当前码流的宽高。 | 无。 |
| 无。 |
类名变更:解码器策略和解码器类型枚举。 |
|
| 修改类名。 |
接口变更:取消设置音量接口改为静音和取消静音接口。 |
|
| 不支持应用内单独控制播放音量,音量控制统一交由系统音量来完成。 |
新增接口:增加音频焦点接口。 | 无。 |
| 从2.0.0开始,SDK不再支持多路音频同时播放,至多只有一路音频播放。当存在多路观看(如NVR多分屏)场景时,请交由用户来调用播放器的 |
接口移除:移除音频播放流通道设置接口。 |
| 无。 | 直播播放器始终使用 |
接口移除:移除对GLSurfaceView的支持。 |
| 无。 | 请替换为TextureView,相比GLSurfaceView有以下优势:
|
接口变更:设置画面缩放模式接口参数调整。 |
|
| 修改参数名和类名。 |
接口变更:边播边录。 |
|
|
|
接口移除:设置播放停止时画面行为接口。 |
| 无。 | 无。 |
接口变更:获取播放状态接口。 |
|
| 播放器状态由int改为枚举值,方便理解和维护。 |
接口变更:获取当前流连接类型接口。 |
|
| 修改类名。 |
接口变更:获取当前播放帧率或码率信息接口。 |
|
| 修改类名。 |
接口变更:设置点播播放器回调接口。 |
|
LVPlayerCode setVodCompletionListener(ILVVodPlayerCompletionListener listener)
| 将多个Listener合并为二个。 |
接口变更:设置使用外部渲染接口。 |
|
| 从2.0.0开始,不仅支持视频YUV数据回调,还支持音频PCM回调。 |
接口变更:获取一帧YUV数据接口。 |
|
| 修改接口名。 |
语音对讲
变更细节 | 1.x.x | 2.x.x | 修改建议 |
包名与类名变更。 |
|
| 更新包名与类名。 |
接口变更:初始化接口。 |
|
| 从2.0.0 SDK开始,iotId和对讲模式不在初始化阶段传入,分别在 |
指令接口,如 | 无。 | 返回值枚举:
| 可以通过判断返回值作为接口操作是否成功的判断。 |
新增接口:增加新的对讲模式。 | 无。 |
| 从2.0.0 SDK开始增加DoubleTalkWithLive模式:App端和设备端都需要同时做采音和放音,设备端必须支持AEC,否则不建议使用该方案;将会使用设备直播通道的声音进行播放,要求必须有已开播的直播通道,可通过 |
接口变更:与指定设备(通过URL)进行对讲。 |
|
| 修改接口名,注意decryptIvBase64和decryptKeyBase64使用Base64编码的字符串。 |
接口变更:设置对讲监听器。 |
|
| 修改接口名。 |
接口变更:外部变声实现。 |
|
| 修改接口名。 |
接口变更:内部变声类型设置。 |
|
| 修改接口名。 |