mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-07-03 00:47:34 +08:00
提升单track情况下秒开体验
This commit is contained in:
@@ -106,13 +106,25 @@ float Demuxer::getDuration() const {
|
||||
return _fDuration;
|
||||
}
|
||||
|
||||
void Demuxer::onAddTrack(const Track::Ptr &track){
|
||||
void Demuxer::addTrack(const Track::Ptr &track){
|
||||
if(_listener){
|
||||
_listener->onAddTrack(track);
|
||||
_listener->addTrack(track);
|
||||
}
|
||||
}
|
||||
|
||||
void Demuxer::setTrackListener(Demuxer::Listener *listener) {
|
||||
void Demuxer::addTrackCompleted(){
|
||||
if(_listener){
|
||||
_listener->addTrackCompleted();
|
||||
}
|
||||
}
|
||||
|
||||
void Demuxer::resetTracks() {
|
||||
if (_listener) {
|
||||
_listener->resetTracks();
|
||||
}
|
||||
}
|
||||
|
||||
void Demuxer::setTrackListener(TrackListener *listener) {
|
||||
_listener = listener;
|
||||
}
|
||||
|
||||
|
||||
@@ -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