MCPcopy Create free account
hub / github.com/Monibuca/engine / AddTrack

Method AddTrack

subscriber.go:168–199  ·  view source on GitHub ↗
(t Track)

Source from the content-addressed store, hash-verified

166}
167
168func (s *Subscriber) AddTrack(t Track) bool {
169 switch v := t.(type) {
170 case *track.Video:
171 if !s.Config.SubVideo {
172 return false
173 }
174 var startTs time.Duration
175 if s.VideoReader != nil {
176 startTs = time.Duration(s.VideoReader.AbsTime) * time.Millisecond
177 s.VideoReader.StopRead()
178 }
179 s.VideoReader = s.CreateTrackReader(&v.Media)
180 s.VideoReader.StartTs = startTs
181 s.Video = v
182 case *track.Audio:
183 if !s.Config.SubAudio {
184 return false
185 }
186 var startTs time.Duration
187 if s.AudioReader != nil {
188 startTs = time.Duration(s.AudioReader.AbsTime) * time.Millisecond
189 s.AudioReader.StopRead()
190 }
191 s.AudioReader = s.CreateTrackReader(&v.Media)
192 s.AudioReader.StartTs = startTs
193 s.Audio = v
194 default:
195 return false
196 }
197 s.Info("track+1", zap.String("name", t.GetName()))
198 return true
199}
200
201func (s *Subscriber) IsPlaying() bool {
202 return s.TrackPlayer.Context != nil && s.TrackPlayer.Err() == nil

Callers 1

OnEventMethod · 0.95

Calls 5

CreateTrackReaderMethod · 0.95
StopReadMethod · 0.80
InfoMethod · 0.65
GetNameMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected