mirror of
https://github.com/Monibuca/plugin-record.git
synced 2025-10-19 06:54:34 +08:00
28 lines
420 B
Go
28 lines
420 B
Go
package flv
|
|
|
|
import (
|
|
. "m7s.live/engine/v4"
|
|
"m7s.live/engine/v4/codec"
|
|
)
|
|
|
|
type Recorder struct {
|
|
Subscriber
|
|
Append bool
|
|
}
|
|
|
|
func (r *Recorder) OnEvent(event any) {
|
|
switch v := event.(type) {
|
|
case ISubscriber:
|
|
// 写入文件头
|
|
if !r.Append {
|
|
r.Write(codec.FLVHeader)
|
|
}
|
|
case HaveFLV:
|
|
flvTag := v.GetFLV()
|
|
if _, err := flvTag.WriteTo(r); err != nil {
|
|
r.Stop()
|
|
}
|
|
}
|
|
r.Subscriber.OnEvent(event)
|
|
}
|