Commit b7e187d7 by ziyue

Player: 添加kWaitTrackReady选项决定播放器是否等待所有track ready再回调

parent e38f2253
...@@ -306,6 +306,7 @@ const string kTimeoutMS = "protocol_timeout_ms"; ...@@ -306,6 +306,7 @@ const string kTimeoutMS = "protocol_timeout_ms";
const string kMediaTimeoutMS = "media_timeout_ms"; const string kMediaTimeoutMS = "media_timeout_ms";
const string kBeatIntervalMS = "beat_interval_ms"; const string kBeatIntervalMS = "beat_interval_ms";
const string kBenchmarkMode = "benchmark_mode"; const string kBenchmarkMode = "benchmark_mode";
const string kWaitTrackReady = "wait_track_ready";
} }
} // namespace mediakit } // namespace mediakit
......
...@@ -331,6 +331,8 @@ extern const string kMediaTimeoutMS; ...@@ -331,6 +331,8 @@ extern const string kMediaTimeoutMS;
extern const string kBeatIntervalMS; extern const string kBeatIntervalMS;
//是否为性能测试模式,性能测试模式开启后不会解析rtp或rtmp包 //是否为性能测试模式,性能测试模式开启后不会解析rtp或rtmp包
extern const string kBenchmarkMode; extern const string kBenchmarkMode;
//播放器在触发播放成功事件时,是否等待所有track ready时再回调
extern const string kWaitTrackReady;
} }
} // namespace mediakit } // namespace mediakit
......
...@@ -60,6 +60,7 @@ PlayerBase::PlayerBase() { ...@@ -60,6 +60,7 @@ PlayerBase::PlayerBase() {
this->mINI::operator[](kTimeoutMS) = 10000; this->mINI::operator[](kTimeoutMS) = 10000;
this->mINI::operator[](kMediaTimeoutMS) = 5000; this->mINI::operator[](kMediaTimeoutMS) = 5000;
this->mINI::operator[](kBeatIntervalMS) = 5000; this->mINI::operator[](kBeatIntervalMS) = 5000;
this->mINI::operator[](kWaitTrackReady) = true;
} }
///////////////////////////DemuxerSink////////////////////////////// ///////////////////////////DemuxerSink//////////////////////////////
......
...@@ -79,7 +79,7 @@ private: ...@@ -79,7 +79,7 @@ private:
} }
void onPlayResult(const SockException &ex) override { void onPlayResult(const SockException &ex) override {
if (ex) { if (!(*this)[Client::kWaitTrackReady].as<bool>() || ex) {
Super::onPlayResult(ex); Super::onPlayResult(ex);
return; return;
} }
...@@ -88,8 +88,10 @@ private: ...@@ -88,8 +88,10 @@ private:
bool addTrack(const Track::Ptr &track) override { return true; } bool addTrack(const Track::Ptr &track) override { return true; }
void addTrackCompleted() override { void addTrackCompleted() override {
if ((*this)[Client::kWaitTrackReady].as<bool>()) {
Super::onPlayResult(SockException(Err_success, "play success")); Super::onPlayResult(SockException(Err_success, "play success"));
} }
}
private: private:
void onCheckMeta_l(const AMFValue &val) { void onCheckMeta_l(const AMFValue &val) {
...@@ -98,7 +100,7 @@ private: ...@@ -98,7 +100,7 @@ private:
_rtmp_src->setMetaData(val); _rtmp_src->setMetaData(val);
} }
_demuxer = std::make_shared<RtmpDemuxer>(); _demuxer = std::make_shared<RtmpDemuxer>();
_demuxer->setTrackListener(this, true); _demuxer->setTrackListener(this, (*this)[Client::kWaitTrackReady].as<bool>());
_demuxer->loadMetaData(val); _demuxer->loadMetaData(val);
} }
......
...@@ -76,7 +76,7 @@ private: ...@@ -76,7 +76,7 @@ private:
_rtsp_media_src->setSdp(sdp); _rtsp_media_src->setSdp(sdp);
} }
_demuxer = std::make_shared<RtspDemuxer>(); _demuxer = std::make_shared<RtspDemuxer>();
_demuxer->setTrackListener(this, true); _demuxer->setTrackListener(this, (*this)[Client::kWaitTrackReady].as<bool>());
_demuxer->loadSdp(sdp); _demuxer->loadSdp(sdp);
return true; return true;
} }
...@@ -91,7 +91,7 @@ private: ...@@ -91,7 +91,7 @@ private:
} }
void onPlayResult(const SockException &ex) override { void onPlayResult(const SockException &ex) override {
if (ex) { if (!(*this)[Client::kWaitTrackReady].as<bool>() || ex) {
Super::onPlayResult(ex); Super::onPlayResult(ex);
return; return;
} }
...@@ -100,8 +100,10 @@ private: ...@@ -100,8 +100,10 @@ private:
bool addTrack(const Track::Ptr &track) override { return true; } bool addTrack(const Track::Ptr &track) override { return true; }
void addTrackCompleted() override { void addTrackCompleted() override {
if ((*this)[Client::kWaitTrackReady].as<bool>()) {
Super::onPlayResult(SockException(Err_success, "play success")); Super::onPlayResult(SockException(Err_success, "play success"));
} }
}
private: private:
RtspDemuxer::Ptr _demuxer; RtspDemuxer::Ptr _demuxer;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论