if filePath == "" {
return
}
-
+ fl := c.C.Log.Base(`Ass`)
if rel, err := filepath.Rel(save_path, ass.file); err == nil {
- c.C.Log.Base(`Ass`).L(`I: `, "保存到", rel+".ass")
+ fl.L(`I: `, "保存到", rel+".ass")
} else {
- c.C.Log.Base(`Ass`).L(`I: `, "保存到", ass.file+".ass")
- c.C.Log.Base(`Ass`).L(`W: `, err)
+ fl.L(`W: `, err)
}
f := &file.File{
Config: file.Config{
<-contextC.Done()
ass.file = ""
+ fl.L(`I: `, "结束")
}
// 传入要显示的单条字幕
}
// 弹幕回放
-var Recoder = websocket.Recorder{
- Server: StreamWs,
-}
-
func StartRecDanmu(c context.Context, filePath string) {
if !IsOn(`仅保存当前直播间流`) || !IsOn("弹幕回放") {
return
}
f := flog.Base("弹幕回放")
+ var Recoder = websocket.Recorder{
+ Server: StreamWs,
+ }
if e := Recoder.Start(filePath); e == nil {
f.L(`T: `, `开始`)
} else {
t.Stream_msg = msgq.NewType[[]byte]()
// 设置事件
+ mainContextC, mainCancle := context.WithCancel(context.Background())
+ if t.Callback_stopRec != nil {
+ t.msg.Pull_tag_only("stopRec", func(ms *M4SStream) (disable bool) {
+ ms.Callback_stopRec(ms)
+ return false
+ })
+ }
+ t.msg.Pull_tag_only("stop", func(ms *M4SStream) (disable bool) {
+ if ms.Callback_stop != nil {
+ ms.Callback_stop(ms)
+ }
+ mainCancle()
+ t.msg.ClearAll()
+ return true
+ })
if t.config.save_to_file {
var fc funcCtrl.FlashFunc
t.msg.Pull_tag_async(map[string]func(*M4SStream) (disable bool){
`cut`: func(ms *M4SStream) (disable bool) {
- contextC, cancle := context.WithCancel(context.Background())
+ contextC, cancle := context.WithCancel(mainContextC)
fc.FlashWithCallback(cancle)
l := ms.log.Base_add(`文件`)
},
})
}
- if t.Callback_stopRec != nil {
- t.msg.Pull_tag_only("stopRec", func(ms *M4SStream) (disable bool) {
- ms.Callback_stopRec(ms)
- return false
- })
- }
- t.msg.Pull_tag_only("stop", func(ms *M4SStream) (disable bool) {
- if ms.Callback_stop != nil {
- ms.Callback_stop(ms)
- }
- t.msg.ClearAll()
- return true
- })
defer t.msg.Push_tag(`stop`, t)
interrupt <- os.Interrupt
return false
},
- })
- //单独,避免队列执行耗时block从而无法接收更多消息
- c.C.Danmu_Main_mq.Pull_tag(msgq.FuncMap{
`pm`: func(data any) bool { //私信
if tmp, ok := data.(send.Pm_item); ok {
send.Send_pm(tmp.Uid, tmp.Msg)