mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-06-25 03:02:22 +08:00
提升单track情况下秒开体验
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
#include "Util/mini.h"
|
||||
#include "Util/RingBuffer.h"
|
||||
#include "Common/MediaSource.h"
|
||||
#include "Common/MediaSink.h"
|
||||
#include "Extension/Frame.h"
|
||||
#include "Extension/Track.h"
|
||||
using namespace toolkit;
|
||||
@@ -227,18 +228,10 @@ protected:
|
||||
MediaSource::Ptr _pMediaSrc;
|
||||
};
|
||||
|
||||
|
||||
class Demuxer : public PlayerBase{
|
||||
class Demuxer : public PlayerBase, public TrackListener{
|
||||
public:
|
||||
class Listener{
|
||||
public:
|
||||
Listener() = default;
|
||||
virtual ~Listener() = default;
|
||||
virtual void onAddTrack(const Track::Ptr &track) = 0;
|
||||
};
|
||||
|
||||
Demuxer(){};
|
||||
virtual ~Demuxer(){};
|
||||
Demuxer() = default;
|
||||
~Demuxer() override = default;
|
||||
|
||||
/**
|
||||
* 返回是否完成初始化完毕
|
||||
@@ -267,15 +260,19 @@ public:
|
||||
/**
|
||||
* 设置track监听器
|
||||
*/
|
||||
void setTrackListener(Listener *listener);
|
||||
void setTrackListener(TrackListener *listener);
|
||||
|
||||
protected:
|
||||
void onAddTrack(const Track::Ptr &track);
|
||||
void addTrack(const Track::Ptr &track) override;
|
||||
void addTrackCompleted() override;
|
||||
void resetTracks() override;
|
||||
|
||||
protected:
|
||||
Listener *_listener = nullptr;
|
||||
float _fDuration = 0;
|
||||
Ticker _ticker;
|
||||
AudioTrack::Ptr _audioTrack;
|
||||
VideoTrack::Ptr _videoTrack;
|
||||
Ticker _ticker;
|
||||
float _fDuration = 0;
|
||||
TrackListener *_listener = nullptr;
|
||||
};
|
||||
|
||||
} /* namespace mediakit */
|
||||
|
||||
Reference in New Issue
Block a user