🐛 FIX: 批量订阅

This commit is contained in:
dexter
2022-11-30 13:17:57 +08:00
parent 244985d683
commit 190a0161ba
2 changed files with 23 additions and 6 deletions

View File

@@ -18,6 +18,8 @@ type WebRTCSubscriber struct {
WebRTCIO
videoTrack *TrackLocalStaticRTP
audioTrack *TrackLocalStaticRTP
videoSender *RTPSender
audioSender *RTPSender
DC *DataChannel
flvHeadCache []byte
}
@@ -44,11 +46,11 @@ func (suber *WebRTCSubscriber) OnEvent(event any) {
if suber.videoTrack == nil {
suber.DC, _ = suber.PeerConnection.CreateDataChannel(suber.Subscriber.Stream.Path, nil)
} else {
rtpSender, _ := suber.PeerConnection.AddTrack(suber.videoTrack)
suber.videoSender, _ = suber.PeerConnection.AddTrack(suber.videoTrack)
go func() {
rtcpBuf := make([]byte, 1500)
for {
if n, _, rtcpErr := rtpSender.Read(rtcpBuf); rtcpErr != nil {
if n, _, rtcpErr := suber.videoSender.Read(rtcpBuf); rtcpErr != nil {
return
} else {
@@ -72,7 +74,7 @@ func (suber *WebRTCSubscriber) OnEvent(event any) {
}
if v.CodecID == codec.CodecID_PCMA || v.CodecID == codec.CodecID_PCMU {
suber.audioTrack, _ = NewTrackLocalStaticRTP(RTPCodecCapability{MimeType: audioMimeType}, v.Name, suber.Subscriber.Stream.Path)
suber.PeerConnection.AddTrack(suber.audioTrack)
suber.audioSender, _ = suber.PeerConnection.AddTrack(suber.audioTrack)
suber.Subscriber.AddTrack(v) //接受这个track
}
case VideoDeConf:
@@ -82,7 +84,7 @@ func (suber *WebRTCSubscriber) OnEvent(event any) {
suber.flvHeadCache[0] = 9
suber.DC.Send(codec.FLVHeader)
}
suber.DC.Send(util.ConcatBuffers(codec.VideoAVCC2FLV(v.AVCC,0)))
suber.DC.Send(util.ConcatBuffers(codec.VideoAVCC2FLV(v.AVCC, 0)))
}
case VideoRTP:
if suber.videoTrack != nil {