Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
ZLMediaKit
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
张翔宇
ZLMediaKit
Commits
efa2234e
Commit
efa2234e
authored
6 years ago
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完善注释和范例
parent
99a4bc3c
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
24 行增加
和
2 行删除
+24
-2
c_wrapper/.idea/workspace.xml
+0
-0
tests/test_server.cpp
+24
-2
没有找到文件。
c_wrapper/.idea/workspace.xml
查看文件 @
efa2234e
差异被折叠。
点击展开。
tests/test_server.cpp
查看文件 @
efa2234e
...
...
@@ -106,6 +106,7 @@ onceToken token1([](){
#define REALM "realm_zlmedaikit"
static
onceToken
s_token
([](){
//监听kBroadcastOnGetRtspRealm事件决定rtsp链接是否需要鉴权(传统的rtsp鉴权方案)才能访问
NoticeCenter
::
Instance
().
addListener
(
nullptr
,
Broadcast
::
kBroadcastOnGetRtspRealm
,[](
BroadcastOnGetRtspRealmArgs
){
if
(
string
(
"1"
)
==
args
.
_streamid
){
// live/1需要认证
...
...
@@ -123,6 +124,7 @@ static onceToken s_token([](){
}
});
//监听kBroadcastOnRtspAuth事件返回正确的rtsp鉴权用户密码
NoticeCenter
::
Instance
().
addListener
(
nullptr
,
Broadcast
::
kBroadcastOnRtspAuth
,[](
BroadcastOnRtspAuthArgs
){
InfoL
<<
"用户:"
<<
user_name
<<
(
must_no_encrypt
?
" Base64"
:
" MD5"
)
<<
" 方式登录"
;
string
user
=
user_name
;
...
...
@@ -153,7 +155,8 @@ static onceToken s_token([](){
});
NoticeCenter
::
Instance
().
addListener
(
nullptr
,
Broadcast
::
kBroadcastRtmpPublish
,[](
BroadcastRtmpPublishArgs
){
//监听rtsp/rtmp推流事件,返回结果告知是否有推流权限
NoticeCenter
::
Instance
().
addListener
(
nullptr
,
Broadcast
::
kBroadcastMediaPublish
,[](
BroadcastMediaPublishArgs
){
InfoL
<<
args
.
_vhost
<<
" "
<<
args
.
_app
<<
" "
<<
args
.
_streamid
<<
" "
<<
args
.
_param_strs
;
EventPoller
::
Instance
().
async
([
invoker
](){
invoker
(
""
);
//鉴权成功
...
...
@@ -161,6 +164,7 @@ static onceToken s_token([](){
});
});
//监听rtsp/rtsps/rtmp/http-flv播放事件,返回结果告知是否有播放权限(rtsp通过kBroadcastOnRtspAuth或此事件都可以实现鉴权)
NoticeCenter
::
Instance
().
addListener
(
nullptr
,
Broadcast
::
kBroadcastMediaPlayed
,[](
BroadcastMediaPlayedArgs
){
InfoL
<<
args
.
_schema
<<
" "
<<
args
.
_vhost
<<
" "
<<
args
.
_app
<<
" "
<<
args
.
_streamid
<<
" "
<<
args
.
_param_strs
;
EventPoller
::
Instance
().
async
([
invoker
](){
...
...
@@ -169,6 +173,7 @@ static onceToken s_token([](){
});
});
//shell登录事件,通过shell可以登录进服务器执行一些命令
NoticeCenter
::
Instance
().
addListener
(
nullptr
,
Broadcast
::
kBroadcastShellLogin
,[](
BroadcastShellLoginArgs
){
InfoL
<<
"shell login:"
<<
user_name
<<
" "
<<
passwd
;
EventPoller
::
Instance
().
async
([
invoker
](){
...
...
@@ -177,7 +182,7 @@ static onceToken s_token([](){
});
});
//此处用于测试rtmp保存为flv录像,保存在http根目录下
//
监听rtsp、rtmp源注册或注销事件;
此处用于测试rtmp保存为flv录像,保存在http根目录下
NoticeCenter
::
Instance
().
addListener
(
nullptr
,
Broadcast
::
kBroadcastMediaChanged
,[](
BroadcastMediaChangedArgs
){
if
(
schema
==
RTMP_SCHEMA
&&
app
==
"live"
){
static
map
<
string
,
FlvRecorder
::
Ptr
>
s_mapFlvRecorder
;
...
...
@@ -199,6 +204,23 @@ static onceToken s_token([](){
}
});
//监听播放失败(未找到特定的流)事件
NoticeCenter
::
Instance
().
addListener
(
nullptr
,
Broadcast
::
kBroadcastNotFoundStream
,[](
BroadcastNotFoundStreamArgs
){
/**
* 你可以在这个事件触发时再去拉流,这样就可以实现按需拉流
* 拉流成功后,ZLMediaKit会把其立即转发给播放器(最大等待时间约为5秒,如果5秒都未拉流成功,播放器会播放失败)
*/
DebugL
<<
"未找到流:"
<<
args
.
_vhost
<<
" "
<<
args
.
_app
<<
" "
<<
args
.
_streamid
<<
" "
<<
args
.
_param_strs
;
});
//监听播放或推流结束时消耗流量事件
NoticeCenter
::
Instance
().
addListener
(
nullptr
,
Broadcast
::
kBroadcastFlowReport
,[](
BroadcastFlowReportArgs
){
DebugL
<<
"播放器(推流器)断开连接:"
<<
args
.
_vhost
<<
" "
<<
args
.
_app
<<
" "
<<
args
.
_streamid
<<
" "
<<
args
.
_param_strs
<<
"
\r\n
使用流量:"
<<
totalBytes
<<
" bytes,连接时长:"
<<
totalDuration
<<
"秒"
;
});
},
nullptr
);
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论