基本完成hls相关的主要事件

This commit is contained in:
xiongziliang
2019-12-29 10:49:04 +08:00
parent 1afacdcff8
commit 54736859d4
13 changed files with 142 additions and 74 deletions

View File

@@ -72,19 +72,15 @@ public:
virtual int totalReaderCount(MediaSource &sender) = 0;
};
/**
* 解析url获取媒体相关信息
*/
class MediaInfo{
public:
MediaInfo(){}
MediaInfo(const string &url){
parse(url);
}
~MediaInfo(){}
MediaInfo(const string &url){ parse(url); }
void parse(const string &url);
string &operator[](const string &key){
return _params[key];
}
public:
string _schema;
string _host;
@@ -92,7 +88,6 @@ public:
string _vhost;
string _app;
string _streamid;
StrCaseMap _params;
string _param_strs;
};
@@ -118,21 +113,27 @@ public:
const string& getApp() const;
// 流id
const string& getId() const;
// 获取所有Track
vector<Track::Ptr> getTracks(bool trackReady = true) const override;
// 获取监听者
const std::weak_ptr<MediaSourceEvent>& getListener() const;
// 设置TrackSource
void setTrackSource(const std::weak_ptr<TrackSource> &track_src);
// 获取所有Track
vector<Track::Ptr> getTracks(bool trackReady = true) const override;
// 设置监听者
virtual void setListener(const std::weak_ptr<MediaSourceEvent> &listener);
// 获取监听者
const std::weak_ptr<MediaSourceEvent>& getListener() const;
// 本协议获取观看者个数,可能返回本协议的观看人数,也可能返回总人数
virtual int readerCount() = 0;
// 观看者个数,包括(hls/rtsp/rtmp)
virtual int totalReaderCount();
// 获取流当前时间戳
virtual uint32_t getTimeStamp(TrackType trackType) { return 0; };
// 设置时间戳
virtual void setTimeStamp(uint32_t uiStamp) {};
// 拖动进度条
bool seekTo(uint32_t ui32Stamp);
@@ -147,12 +148,10 @@ public:
static void findAsync(const MediaInfo &info, const std::shared_ptr<TcpSession> &session, const function<void(const Ptr &src)> &cb);
// 遍历所有流
static void for_each_media(const function<void(const Ptr &src)> &cb);
protected:
void regist() ;
bool unregist() ;
void unregisted();
private:
string _strSchema;
string _strVhost;