RTSP播放器或RTMP播放器常用的事件回调设计

简介: 很多开发者在开发RTSP或RTMP播放器的时候,不晓得哪些event回调事件是有意义的,针对此,我们以大牛直播SDK(github)的Android平台RTSP/RTMP直播播放端为例,简单介绍下常用的event id,总的来说,有以下几个部分组成:

很多开发者在开发RTSP或RTMP播放器的时候,不晓得哪些event回调事件是有意义的,针对此,我们以大牛直播SDK(github)的Android平台RTSP/RTMP直播播放端为例,简单介绍下常用的event id,总的来说,有以下几个部分组成:


1. 常规网络状态显示:如开始播放、网络中断、重连、收不到媒体数据等;


2. 视频宽高信息回调:用于上层显示回调的分辨率信息;


3. 快速切换url:如播放过程中,切换其他url时,分辨率发生变化,给到回调事件;


4. 录像状态:如开始录像、录像完成;


5. 实时快照:返回快照状态和快照存放路径;


6. 数据缓冲状态:如开始buffering、buffering percent、停止buffering;


7. 流实时下载回调:显示播放rtsp或rtmp流时,实时流量,注意,这块最好是可设置回调时间间隔,防止不必要的资源消耗;


8. RTSP错误状态:如401鉴权不通过。


以下接口定义可供参考:

Android 播放端 SDK Event 回调说明

事件 ID

事件描述

EVENT_DANIULIVE_ERC_PLAYER_STARTED

开始播放

EVENT_DANIULIVE_ERC_PLAYER_CONNECTING

播放端连接中

EVENT_DANIULIVE_ERC_PLAYER_CONNECTION_FAILED

播放端连接失败

EVENT_DANIULIVE_ERC_PLAYER_CONNECTED

播放端连接成功

EVENT_DANIULIVE_ERC_PLAYER_DISCONNECTED

播放端连接断开

EVENT_DANIULIVE_ERC_PLAYER_STOP

停止播放

EVENT_DANIULIVE_ERC_PLAYER_RESOLUTION_INFO

返回视频宽、高信息

EVENT_DANIULIVE_ERC_PLAYER_NO_MEDIADATA_RECEIVED

收不到媒体数据(可能

是 URL错误)

EVENT_DANIULIVE_ERC_PLAYER_SWITCH_URL

快速切换 URL

EVENT_DANIULIVE_ERC_PLAYER_RECORDER_START_NEW_FILE

开始一个新的录像文件

(param3 返回包含录像

路径在内的录像文件

名)

EVENT_DANIULIVE_ERC_PLAYER_ONE_RECORDER_FILE_FINISHED

已生成一个录像文件

(param3 返回包含录像

路径在内的录像文件

名)

EVENT_DANIULIVE_ERC_PLAYER_CAPTURE_IMAGE

播放端实时快照

EVENT_DANIULIVE_ERC_PLAYER_START_BUFFERING

开始缓冲数据

EVENT_DANIULIVE_ERC_PLAYER_BUFFERING

缓冲中(param1 参数

会返回缓冲百分比)

EVENT_DANIULIVE_ERC_PLAYER_STOP_BUFFERING

停止缓冲数据

EVENT_DANIULIVE_ERC_PLAYER_DOWNLOAD_SPEED

返回当前 RTSP/RTMP 流

实时下载速度

EVENT_DANIULIVE_ERC_PLAYER_RTSP_STATUS_CODE

RTSP 收到错误码,可能

是用户名、密码不对


相关文章
|
5月前
|
搜索推荐 API 开发者
京东商品列表 API 接口全解析:从入门到精通
京东商品列表API是京东开放平台为开发者提供的核心数据接口,支持批量获取商品基础信息、价格、库存状态等多维度数据。它具备数据丰富性、灵活筛选与分页查询、稳定高效等特点,可满足市场分析、选品优化、比价工具及推荐系统开发等需求,为电商业务创新提供坚实支撑。通过标准化通道,助力第三方高效、合法地利用京东海量商品数据。
|
3月前
|
存储 数据可视化 数据库
低代码开发如何快速入门?今天做一期详细介绍
低代码平台旨在解决传统开发中业务需求频繁变更、技术加班严重及上线周期长等问题。织信平台作为一款强大的“业务系统搭建工具箱”,通过拖拽式配置与逻辑设定,让业务人员参与基础功能构建,加速系统实现。其核心模块包括团队管理、应用开发、数据表设计、工作流配置、角色权限控制等,支持多场景应用如问卷调查与数据分析。新手仅需3-5天即可完成基础系统搭建,逐步扩展复杂功能,实现高效协同开发。
|
设计模式 Swift iOS开发
【Swift开发专栏】Swift中的协议与委托模式
【4月更文挑战第30天】Swift编程语言强调协议与委托模式。协议定义了类型需实现的方法和属性,如`SomeProtocol`示例。遵循协议的类、结构体或枚举需实现协议要求。协议可继承,也可作为类型使用。委托模式让对象间通信更灵活,通过协议实现,如`DataSourceDelegate`示例。实战案例展示了在`UITableView`和自定义下载器中使用委托模式。
273 0
|
机器学习/深度学习 算法 调度
AdEMAMix: 一种创新的神经网络优化器
9月发布的一篇论文中,Pagliardini等人提出了AdEMAMix,一种新的优化算法,旨在克服Adam及其变体(如AdamW)在利用长期梯度信息方面的局限性。通过结合两种不同衰减率的指数移动平均(EMA),AdEMAMix能够更有效地利用历史梯度信息。实验结果显示,AdEMAMix在语言建模和视觉任务中均显著优于AdamW,不仅能加速模型收敛,还能提高学习稳定性。尽管引入了额外计算步骤,但开销极小,展示了在大规模神经网络训练中的潜力。论文详细探讨了其核心思想、实验设置及未来研究方向。
343 8
AdEMAMix: 一种创新的神经网络优化器
|
11月前
|
算法 程序员
从代码到哲学:编程中的启示与人生思考
在编写代码的过程中,我们不仅构建程序,也在无形中编织着生活的哲理。每一行代码都像是生命中的一步,它们共同构成了复杂而精彩的生命之旅。本文将从编程的角度出发,探讨技术实践中的深刻启示,以及这些启示如何影响我们对生活、工作和自我成长的理解。
275 3
|
编解码 开发工具 Android开发
iOS平台如何实现毫秒级延迟的RTMP|RTSP播放器
在我的blog里面,最近很少有提到iOS平台RTMP推送|轻量级RTSP服务和RTMP|RTSP直播播放模块,实际上,我们在2016年就发布了iOS平台直播推拉流、转发模块,只是因为传统行业,对iOS的需求比较少,所以一直没单独说明,本文主要介绍下,如何在iOS平台播放RTMP或RTSP流。
245 6
|
编解码 Linux 开发工具
iOS平台如何实现RTSP|RTMP播放端录像?
我们在做RTSP、RTMP直播播放器的时候,有个比较重要的功能,就是拉流端实时录像,包括设置单个录像文件大小、文件前缀、audio转AAC、只录制视频或只录制音频、开始录像、停止录像事件状态回调等。
250 5
|
存储 数据挖掘 Apache
Apache Doris + Iceberg 快速搭建指南|Lakehouse 使用手册(三)
如何在 Docker 环境下快速搭建 Apache Doris + Apache Iceberg 测试 & 演示环境,并展示各功能的使用操作
484 8
Apache Doris + Iceberg 快速搭建指南|Lakehouse 使用手册(三)
|
安全 数据安全/隐私保护
|
机器学习/深度学习 存储 人工智能
【博士每天一篇文献-综述】Brain-inspired learning in artificial neural networks a review
这篇综述论文探讨了如何将生物学机制整合到人工神经网络中,以提升网络性能,并讨论了这些整合带来的潜在优势和挑战。
223 5