apicloud如何对接大牛直播SDK
随着apicloud的普及,越来越多的用户苦于apicloud下没有一款真正靠谱低延迟的rtmp/rtsp直播播放器苦恼。
鉴于此,大牛直播SDK携手apicloud资深版主,推出apicloud对接方案:
apicloud官方链接:https://www.apicloud.com/mod_detail/49069
apicloud对接版本说明:https://docs.apicloud.com/Client-API/Open-SDK/daniuPlayer
相关接口如下:
专注、极致、智慧,国内外为数不多不依赖开源框架、跨平台(windows/android/iOS)、公网推送(支持rtmp)-转发-播放-录像(支持rtmp/rtsp),比快更快,业界真正靠谱的超低延迟(真1秒,低延迟模式下200~400ms)。
适用于在线教育、无纸化推屏/会议、智慧教室、智能可视门禁对讲、超低延迟娃娃机抓取播放方案、媒体移动直播、应急指挥调度(针对保险、城管、交警、消防、公安等职能管理部门的单兵应急执法系统)、可视化购物、远程专家诊断、可视化巡检、(如电信/电力线路/铁路沿线/水利设施/油田/消防设施巡检)、移动视频安防监控,企业内训、金融在线直播室、微信直播、监控对接、活动现场直播、游戏直播、秀场直播等场景。
daniuPlayer 模块概述
本模块封装了大牛直播SDK,支持rtsp、rtmp播放(请开发者自行控制播放格式),支持秒开模式,支持快速切换视频播放地址等。
License文件打包模块包需注意事项请参考License打包模块包注意事项
模块接口
addPlayerListener
播放器监听
addPlayerListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{ code: 1001, //状态码(含义见下表:) param1 : '',//返回参数1 param2 : '',//返回参数2 param3 : '',//返回参数3 param4 : '',//返回参数4 }
示例代码
var demo = api.require('daniuPlayer'); demo.addPlayerListener(function(ret){ api.toast({ msg : " addPlayerListener " + JSON.stringify(ret) }); });
code状态码
状态码 | 描述信息 |
---|---|
1001 | 开始播放 |
1002 | 连接中 |
1003 | 连接失败 |
1004 | 已连接 |
1005 | 断开连接 |
1006 | 停止播放 |
1007 | 视频解码分辨率信息 |
1008 | 收不到RTMP数据 |
1009 | 快速切换url |
1010 | 快照成功/失败 |
1011 | 开始buffer |
1012 | buffer百分比 |
1013 | 停止buffer |
1014 | download速度 |
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
openPlayer
打开播放器
openPlayer({params}, callback(ret, err))
params
rect:
- 类型:JSON 对象
- 描述:(必填项)模块的位置及尺寸
- 备注:iOS,Android 必须传此参数。
- 内部字段:
{ x: 0, //(必填项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0 y: 0, //(必填项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0 w: api.frameWidth, //(必填项)数字类型;模块的宽度;默认值:所属的 Window 或 Frame 的宽度 h: api.frameHeight //(必填项)数字类型;模块的高度;默认值:所属的 Window 或 Frame 的高度 }
fixedOn:
- 类型:字符串
- 描述:(可选项)模块所属 Frame 的名字,若不传则模块归属于当前 Window
fixed:
- 类型:布尔
- 描述:((可选项)模块是否随所属 Window 或 Frame 滚动
- 默认值:true(不随之滚动)
playBuffer:
- 类型:数字型
- 描述:(可选项)设置播放端缓存数据 buffer,如不需 buffer, 设置为 0 。
- 默认值:200
isLowLatency:
- 类型:布尔
- 描述:(可选项)针对类似于直播娃娃机等期待超低 延迟的使用场景,超低延迟播放模式下,延迟可达到 200~400ms;
- 默认值:false(不开启)
isFastStartup:
- 类型:布尔
- 描述:(可选项)设置 快速启动后,如果 CDN 缓存 GOP,daniulive player 可快速出帧;
- 默认值:true(秒开)
isMute:
- 类型:布尔
- 描述:(可选项)设置播放过程中,实时静音/取消静音;
- 默认值:false(取消静音)
isHardwareDecoder:
- 类型:布尔
- 描述:(可选项)设置是否用硬解码播放,硬解码/软解码;
- 默认值:false(软解)
url:
- 类型:字符串
- 描述:(必填项)支持 rtmp、rtsp地址类型(类型控制请开发者自行判断,模块不做地址限制判断逻辑);
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{ status: true, //布尔型;true||false }
err:
- 类型:JSON 对象
- 内部字段:
{ msg : '' }
示例代码
var demo = api.require('daniuPlayer'); demo.openPlayer({ rect : { x : 5, y : 0, w : api.frameWidth-5, h : 200 }, playBuffer : 200, // 默认200ms isLowLatency : false, //超低延时,默认fasle:不开启 true:开启 isFastStartup : true, // 是否秒开, 默认true:秒开 false:取消秒开 isMute : false, //是否静音 默认false:取消静音 true:静音 isHardwareDecoder : false, //是否硬解 默认false:软解 true:硬解 url : _deviceid , fixedOn : api.frameName, fixed : true }, function(ret, err) { api.toast({ msg : " openPlayer " + JSON.stringify(ret) + " " + JSON.stringify(err) }); });
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
hidePlayer
隐藏播放器
hidePlayer(callback(ret,err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{ status: true, //布尔型;true||false }
err:
- 类型:JSON 对象
- 内部字段:
{ msg : '' }
示例代码
var demo = api.require('daniuPlayer'); demo.hidePlayer();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
showPlayer
显示播放器
hidePlayer(callback(ret,err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{ status: true, //布尔型;true||false }
err:
- 类型:JSON 对象
- 内部字段:
{ msg : '' }
示例代码
var demo = api.require('daniuPlayer'); demo.showPlayer();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
closePlayer
关闭播放器
closePlayer(callback(ret,err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{ status: true, //布尔型;true||false }
err:
- 类型:JSON 对象
- 内部字段:
{ msg : '' }
示例代码
var demo = api.require('daniuPlayer'); demo.closePlayer();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
switchUrl
切换播放器视频地址 switchUrl({params}, callback(ret, err))
params
url:
- 类型:字符串
- 描述:(必填项)支持 rtmp、rtsp地址类型(类型控制请开发者自行判断,模块不做地址限制判断逻辑);
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{ status: true, //布尔型;true||false }
err:
- 类型:JSON 对象
- 内部字段:
{ msg : '' }
示例代码
var demo = api.require('daniuPlayer'); demo.switchUrl({ url : "http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8" }, function(ret, err) { api.toast({ msg : " switchUrl " + JSON.stringify(ret) + " " + JSON.stringify(err) }); });
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
switchMute
设置是否静音 switchMute({params}, callback(ret, err))
params
isMute:
- 类型:布尔
- 描述:(可选项)设置播放过程中,实时静音/取消静音;
- 默认值:false(取消静音)
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{ status: true, //布尔型;true||false }
err:
- 类型:JSON 对象
- 内部字段:
{ msg : '' }
示例代码
var demo = api.require('daniuPlayer'); demo.switchMute({ isMute : true }, function(ret, err) { api.toast({ msg : " switchMute " + JSON.stringify(ret) + " " + JSON.stringify(err) }); });
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
saveImage
保存快照 saveImage(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{ status: true, //布尔型;true||false }
err:
- 类型:JSON 对象
- 内部字段:
{ msg : '' }
示例代码
var demo = api.require('daniuPlayer'); demo.saveImage(function(ret, err) { api.toast({ msg : " saveImage " + JSON.stringify(ret) + " " + JSON.stringify(err) }); });
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startRecorder
开始录像 startRecorder({params}, callback(ret, err))
params
fileMaxSize:
- 类型:数字型
- 描述:(可选项)设置每个录像文件最大 size, 以兆(M)为单位,范围(5M~500M);
- 默认值:200
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{ status: true, //布尔型;true||false }
err:
- 类型:JSON 对象
- 内部字段:
{ msg : '' }
示例代码
var demo = api.require('daniuPlayer'); demo.startRecorder();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopRecorder
停止录像 stopRecorder(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{ status: true, //布尔型;true||false }
err:
- 类型:JSON 对象
- 内部字段:
{ msg : '' }
示例代码
var demo = api.require('daniuPlayer'); demo.stopRecorder();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Unity打安卓包 Android 所有错误解决方案大全(几乎囊括所有打包错误 )
Unity打包出错解决方案 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar —— 心分享、心创新!助力快速解决Unity打包中常见错误给新手节省宝贵的时间,避免采坑! 1 Change Name —— 未设置修改包名 / 公司名 / 项目名 2 SDK Tools —— Unity版本低,需要安卓工具版本也低些 支持 May Be —— 搞开发,总有一天要做的事! 1 Change Name —— 未设置修改包名 / 公司名 / 项目名 由于未设置修改 包名 / 公司名 / 项目名 导致报错,最为简单 UnityException: Package Name has not been set up correctly Please set the Package Name in the Player Settings. The value must follow the convention 'com.YourCompanyName.YourProductName' and c...
- 下一篇
07.Android Studio下Ndk开发(使用fmod播放声音)
(创建于2017/12/28) 已实现 注意几点: 1.main下cpp文件夹放置c文件和相关头文件 2.main下JniLibs文件夹放置第三方so文件 3.app下libs文件夹放置jar包 4.CMakeLists配置文件: cmake_minimum_required(VERSION 3.4.1) add_library( //打包多个cpp文件为同一个so文件qq_voice qq_voice SHARED src/main/cpp/common.cpp src/main/cpp/play_sound.cpp src/main/cpp/common_platform.cpp ) //引入第三方 add_library( libfmod SHARED IMPORTED ) //配置第三方路径 set_target_properties( libfmod PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libfmod.so ) //引入第三方 add_library(...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装