addTrack/inputFrame接口支持返回值;新增全局添加静音音频接口

This commit is contained in:
ziyue
2021-09-27 13:12:53 +08:00
parent 1f99708548
commit e9008afca0
63 changed files with 447 additions and 357 deletions

View File

@@ -59,6 +59,12 @@ API_EXPORT void API_CALL mk_media_init_video(mk_media ctx, int codec_id, int wid
*/
API_EXPORT void API_CALL mk_media_init_audio(mk_media ctx, int codec_id, int sample_rate, int channels, int sample_bit);
/**
* 添加静音音频轨道
* @param ctx 对象指针
*/
API_EXPORT void API_CALL mk_media_init_mute_audio(mk_media ctx);
/**
* 初始化h264/h265/aac完毕后调用此函数
* 在单track(只有音频或视频)时因为ZLMediaKit不知道后续是否还要添加track所以会多等待3秒钟

View File

@@ -196,6 +196,12 @@ API_EXPORT void API_CALL mk_media_init_audio(mk_media ctx, int codec_id, int sam
(*obj)->getChannel()->initAudio(info);
}
API_EXPORT void API_CALL mk_media_init_mute_audio(mk_media ctx) {
assert(ctx);
MediaHelper::Ptr *obj = (MediaHelper::Ptr *) ctx;
(*obj)->getChannel()->addMuteAudioTrack();
}
API_EXPORT void API_CALL mk_media_init_complete(mk_media ctx){
assert(ctx);
MediaHelper::Ptr *obj = (MediaHelper::Ptr *) ctx;

View File

@@ -77,10 +77,11 @@ public:
//播放成功,添加事件回调
weak_ptr<MediaPlayerForC> weak_self = shared_from_this();
auto delegate = std::make_shared<FrameWriterInterfaceHelper>([weak_self](const Frame::Ptr &frame) {
auto strong_self = weak_self.lock();
if (strong_self) {
if (auto strong_self = weak_self.lock()) {
strong_self->onData(frame);
return true;
}
return false;
});
for (auto &track : _player->getTracks(false)) {
track->addDelegate(delegate);