|
|

11精币
直播监控和停止直播录制子程序代码基本相同,为什么停止直播录制可以正常结束监控句柄,而直播监控子程序“下面红线区域没运行”
求大佬指点
代码如下:
录制进程ID = 进程_创建Ex (ffmpeg, 命令, , #隐藏窗口, , ) 如果 (录制进程ID = 0 ) 日志 (直播间主播名 + “录制启动失败!”) 超级列表框_直播信息. 置标题 (超级列表框_直播信息.现行选中项, 8, “录制失败”)  超级列表框_直播信息. 置标题 (超级列表框_直播信息.现行选中项, 9, 到文本 (录制进程ID ))  超级列表框_直播信息. 置标题 (超级列表框_直播信息.现行选中项, 8, “开始录制”) 日志 (直播间主播名 + “录制已启动,PID:” + 到文本 (录制进程ID )) 程序_延时 (100 ) 现行选中项数值 = 超级列表框_直播信息. 查找表项 (到文本 (录制进程ID ), 0, 真, 9 ) 日志 (直播间主播名 + “所在行:” + 到文本 (现行选中项数值 ))  监控直播线程句柄 = 线程_启动 (&直播监控, 录制进程ID, ) 日志 (直播间主播名 + “直播监控线程句柄:” + 到文本 (监控直播线程句柄 ))  超级列表框_直播信息. 置标题 (现行选中项数值, 10, 到文本 (监控直播线程句柄 ))  超级列表框_直播信息.现行选中项 = -1  | 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 监控直播线程句柄 | 整数型 | | | | 直播间主播名 | 文本型 | | | | 现行选中项数值 | 整数型 | | |
现行选中项数值 = 超级列表框_直播信息. 查找表项 (到文本 (录制进程ID ), , 真, 9 )调试输出 (现行选中项数值 )直播间主播名 = 超级列表框_直播信息. 取标题 (现行选中项数值, 3 )日志 (直播间主播名 + “直播录制监控中。。。”) 判断循环首 (进程_ID是否有效 (录制进程ID )) 程序_延时 (1000, ) 判断循环尾 ()日志 (直播间主播名 + “录制进程已无效,录制结束。。。”)进程_结束 (录制进程ID )超级列表框_直播信息. 置标题 (现行选中项数值, 6, “”)超级列表框_直播信息. 置标题 (现行选中项数值, 7, “已停播”)超级列表框_直播信息. 置标题 (现行选中项数值, 8, “停止录制”)超级列表框_直播信息. 置标题 (现行选中项数值, 9, “”) 监控直播线程句柄 = 到整数 (超级列表框_直播信息. 取标题 (现行选中项数值, 10 )) 日志 (直播间主播名 + “直播监控子程序:监控直播线程句柄:” + 到文本 (监控直播线程句柄 )) [color= #ff0000] -----------------------------这里为什么没有运行------------------------------------------------------------------------- [/color ] 如果 (线程_销毁 (监控直播线程句柄 ))  超级列表框_直播信息. 置标题 (现行选中项数值, 10, “成功”) 超级列表框_直播信息. 置标题 (现行选中项数值, 10, “失败”)日志 (直播间主播名 + “直播监控子程序:销毁监控直播线程句柄。。。”) 如果 (关闭线程句柄 (监控直播线程句柄 ))  超级列表框_直播信息. 置标题 (现行选中项数值, 10, “成功”) 超级列表框_直播信息. 置标题 (现行选中项数值, 10, “失败”)日志 (直播间主播名 + “直播监控子程序:关闭监控直播线程句柄。。。”)[color= #ff0000] ------------------------------------------------------------------------------------------------------------------------ [/color ]|
| 停止直播录制 | | | |
| 录制进程ID | 整数型 | | | | 直播间主播名 | 文本型 | | | |
| 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 现行选中项数值 | 整数型 | | | | 监控直播线程句柄 | 整数型 | | |
现行选中项数值 = 超级列表框_直播信息. 查找表项 (到文本 (录制进程ID ), 0, 真, 9 )超级列表框_直播信息. 置标题 (现行选中项数值, 6, “”)超级列表框_直播信息. 置标题 (现行选中项数值, 7, “已停播”)超级列表框_直播信息. 置标题 (现行选中项数值, 8, “停止录制”) 如果 (进程_ID是否有效 (录制进程ID ))  如果 (进程_结束 (录制进程ID ))   超级列表框_直播信息. 置标题 (现行选中项数值, 9, “成功”)  超级列表框_直播信息. 置标题 (现行选中项数值, 9, “失败”)   超级列表框_直播信息. 置标题 (现行选中项数值, 9, “失败”) 监控直播线程句柄 = 到整数 (超级列表框_直播信息. 取标题 (现行选中项数值, 10 )) 如果 (线程_取状态 (监控直播线程句柄 ) = 1 )  如果 (线程_销毁 (监控直播线程句柄 ))   超级列表框_直播信息. 置标题 (现行选中项数值, 10, “成功”)  超级列表框_直播信息. 置标题 (现行选中项数值, 10, “失败”)   如果 (关闭线程句柄 (监控直播线程句柄 ))   超级列表框_直播信息. 置标题 (现行选中项数值, 10, “成功”)  超级列表框_直播信息. 置标题 (现行选中项数值, 10, “失败”)   超级列表框_直播信息. 取消表项选择 (现行选中项数值 )日志 (直播间主播名 + “录制已停止”)超级列表框_直播信息.现行选中项 = -1
|
最佳答案
查看完整内容
直播监控 子程序代码是运行在监控线程内部的。当你执行 线程_销毁 (监控直播线程句柄) 时,你实际上是在命令当前正在运行的这个线程立即停止。
一旦执行了这一行,线程瞬间死亡,CPU 立即停止处理该线程的任何后续指令。因此,紧跟在它后面的 超级列表框...置标题 (“成功”) 以及后续代码没有机会被执行。 ...
回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。 友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。 快捷通道:申请荣誉值 →
|