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
98d0bc27
Commit
98d0bc27
authored
Apr 26, 2020
by
baiyfcu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mk_player api 增加seek和获取进度以相对开始时间的接口以适应按时间轴方式回放的需求
parent
12eabbe4
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
65 行增加
和
2 行删除
+65
-2
api/include/mk_player.h
+13
-1
api/source/mk_player.cpp
+18
-0
src/Common/Stamp.cpp
+6
-1
src/Common/Stamp.h
+3
-0
src/Player/PlayerBase.h
+25
-0
没有找到文件。
api/include/mk_player.h
查看文件 @
98d0bc27
...
@@ -81,6 +81,13 @@ API_EXPORT void API_CALL mk_player_pause(mk_player ctx, int pause);
...
@@ -81,6 +81,13 @@ API_EXPORT void API_CALL mk_player_pause(mk_player ctx, int pause);
API_EXPORT
void
API_CALL
mk_player_seekto
(
mk_player
ctx
,
float
progress
);
API_EXPORT
void
API_CALL
mk_player_seekto
(
mk_player
ctx
,
float
progress
);
/**
/**
* 设置点播进度条
* @param ctx 对象指针
* @param seekPos 取值范围 相对于开始时间增量 单位秒
*/
API_EXPORT
void
API_CALL
mk_player_seektoByPos
(
mk_player
ctx
,
int
seekPos
);
/**
* 设置播放器开启播放结果回调函数
* 设置播放器开启播放结果回调函数
* @param ctx 播放器指针
* @param ctx 播放器指针
* @param cb 回调函数指针,不得为null
* @param cb 回调函数指针,不得为null
...
@@ -155,11 +162,16 @@ API_EXPORT int API_CALL mk_player_audio_channel(mk_player ctx);
...
@@ -155,11 +162,16 @@ API_EXPORT int API_CALL mk_player_audio_channel(mk_player ctx);
API_EXPORT
float
API_CALL
mk_player_duration
(
mk_player
ctx
);
API_EXPORT
float
API_CALL
mk_player_duration
(
mk_player
ctx
);
/**
/**
* 获取点播播放进度,取值范围
未
0.0~1.0
* 获取点播播放进度,取值范围 0.0~1.0
*/
*/
API_EXPORT
float
API_CALL
mk_player_progress
(
mk_player
ctx
);
API_EXPORT
float
API_CALL
mk_player_progress
(
mk_player
ctx
);
/**
/**
* 获取点播播放进度位置,取值范围 相对于开始时间增量 单位秒
*/
API_EXPORT
int
API_CALL
mk_player_progress_pos
(
mk_player
ctx
);
/**
* 获取丢包率,rtsp时有效
* 获取丢包率,rtsp时有效
* @param ctx 对象指针
* @param ctx 对象指针
* @param track_type 0:视频,1:音频
* @param track_type 0:视频,1:音频
...
...
api/source/mk_player.cpp
查看文件 @
98d0bc27
...
@@ -62,6 +62,16 @@ API_EXPORT void API_CALL mk_player_seekto(mk_player ctx, float progress) {
...
@@ -62,6 +62,16 @@ API_EXPORT void API_CALL mk_player_seekto(mk_player ctx, float progress) {
});
});
}
}
API_EXPORT
void
API_CALL
mk_player_seektoByPos
(
mk_player
ctx
,
int
seekPos
)
{
MediaPlayer
::
Ptr
&
player
=
*
((
MediaPlayer
::
Ptr
*
)
ctx
);
player
->
getPoller
()
->
async
([
seekPos
,
player
]()
{
//切换线程后再操作
player
->
seekTo
((
uint32_t
)
seekPos
);
});
}
static
void
mk_player_set_on_event
(
mk_player
ctx
,
on_mk_play_event
cb
,
void
*
user_data
,
int
type
)
{
static
void
mk_player_set_on_event
(
mk_player
ctx
,
on_mk_play_event
cb
,
void
*
user_data
,
int
type
)
{
assert
(
ctx
&&
cb
);
assert
(
ctx
&&
cb
);
MediaPlayer
::
Ptr
&
player
=
*
((
MediaPlayer
::
Ptr
*
)
ctx
);
MediaPlayer
::
Ptr
&
player
=
*
((
MediaPlayer
::
Ptr
*
)
ctx
);
...
@@ -169,6 +179,14 @@ API_EXPORT float API_CALL mk_player_progress(mk_player ctx) {
...
@@ -169,6 +179,14 @@ API_EXPORT float API_CALL mk_player_progress(mk_player ctx) {
return
player
->
getProgress
();
return
player
->
getProgress
();
}
}
API_EXPORT
int
API_CALL
mk_player_progress_pos
(
mk_player
ctx
)
{
assert
(
ctx
);
MediaPlayer
::
Ptr
&
player
=
*
((
MediaPlayer
::
Ptr
*
)
ctx
);
return
player
->
getProgressPos
();
}
API_EXPORT
float
API_CALL
mk_player_loss_rate
(
mk_player
ctx
,
int
track_type
)
{
API_EXPORT
float
API_CALL
mk_player_loss_rate
(
mk_player
ctx
,
int
track_type
)
{
assert
(
ctx
);
assert
(
ctx
);
MediaPlayer
::
Ptr
&
player
=
*
((
MediaPlayer
::
Ptr
*
)
ctx
);
MediaPlayer
::
Ptr
&
player
=
*
((
MediaPlayer
::
Ptr
*
)
ctx
);
...
...
src/Common/Stamp.cpp
查看文件 @
98d0bc27
...
@@ -52,7 +52,10 @@ void Stamp::revise(int64_t dts, int64_t pts, int64_t &dts_out, int64_t &pts_out,
...
@@ -52,7 +52,10 @@ void Stamp::revise(int64_t dts, int64_t pts, int64_t &dts_out, int64_t &pts_out,
//这是点播
//这是点播
dts_out
=
dts
;
dts_out
=
dts
;
pts_out
=
pts
;
pts_out
=
pts
;
_relativeStamp
=
dts_out
;
_last_dts
=
dts
;
if
(
_dts_base
==
-
1
)
_dts_base
=
dts
;
_relativeStamp
=
_npt_base
+
dts
-
_dts_base
;
return
;
return
;
}
}
...
@@ -84,6 +87,8 @@ void Stamp::revise(int64_t dts, int64_t pts, int64_t &dts_out, int64_t &pts_out,
...
@@ -84,6 +87,8 @@ void Stamp::revise(int64_t dts, int64_t pts, int64_t &dts_out, int64_t &pts_out,
}
}
void
Stamp
::
setRelativeStamp
(
int64_t
relativeStamp
)
{
void
Stamp
::
setRelativeStamp
(
int64_t
relativeStamp
)
{
_dts_base
=
_last_dts
;
_npt_base
=
relativeStamp
;
_relativeStamp
=
relativeStamp
;
_relativeStamp
=
relativeStamp
;
}
}
...
...
src/Common/Stamp.h
查看文件 @
98d0bc27
...
@@ -71,6 +71,9 @@ private:
...
@@ -71,6 +71,9 @@ private:
int64_t
_last_dts
=
-
1
;
int64_t
_last_dts
=
-
1
;
SmoothTicker
_ticker
;
SmoothTicker
_ticker
;
bool
_playback
=
false
;
bool
_playback
=
false
;
int64_t
_dts_base
=
0
;
int64_t
_npt_base
=
0
;
};
};
...
...
src/Player/PlayerBase.h
查看文件 @
98d0bc27
...
@@ -94,12 +94,24 @@ public:
...
@@ -94,12 +94,24 @@ public:
virtual
float
getProgress
()
const
{
return
0
;}
virtual
float
getProgress
()
const
{
return
0
;}
/**
/**
* 获取播放进度pos,取值 相对开始时间增量 单位秒
* @return
*/
virtual
uint32_t
getProgressPos
()
const
{
return
0
;
}
/**
* 拖动进度条
* 拖动进度条
* @param fProgress 进度,取值 0.0 ~ 1.0
* @param fProgress 进度,取值 0.0 ~ 1.0
*/
*/
virtual
void
seekTo
(
float
fProgress
)
{}
virtual
void
seekTo
(
float
fProgress
)
{}
/**
/**
* 拖动进度条
* @param seekPos 进度,取值 相对于开始时间的增量 单位秒
*/
virtual
void
seekTo
(
uint32_t
seekPos
)
{}
/**
* 设置一个MediaSource,直接生产rtsp/rtmp代理
* 设置一个MediaSource,直接生产rtsp/rtmp代理
* @param src
* @param src
*/
*/
...
@@ -174,6 +186,12 @@ public:
...
@@ -174,6 +186,12 @@ public:
}
}
return
Parent
::
getProgress
();
return
Parent
::
getProgress
();
}
}
uint32_t
getProgressPos
()
const
override
{
if
(
_delegate
)
{
return
_delegate
->
getProgressPos
();
}
return
Parent
::
getProgressPos
();
}
void
seekTo
(
float
fProgress
)
override
{
void
seekTo
(
float
fProgress
)
override
{
if
(
_delegate
)
{
if
(
_delegate
)
{
return
_delegate
->
seekTo
(
fProgress
);
return
_delegate
->
seekTo
(
fProgress
);
...
@@ -181,6 +199,13 @@ public:
...
@@ -181,6 +199,13 @@ public:
return
Parent
::
seekTo
(
fProgress
);
return
Parent
::
seekTo
(
fProgress
);
}
}
void
seekTo
(
uint32_t
seekPos
)
override
{
if
(
_delegate
)
{
return
_delegate
->
seekTo
(
seekPos
);
}
return
Parent
::
seekTo
(
seekPos
);
}
void
setMediaSouce
(
const
MediaSource
::
Ptr
&
src
)
override
{
void
setMediaSouce
(
const
MediaSource
::
Ptr
&
src
)
override
{
if
(
_delegate
)
{
if
(
_delegate
)
{
_delegate
->
setMediaSouce
(
src
);
_delegate
->
setMediaSouce
(
src
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论