PCL2 icon indicating copy to clipboard operation
PCL2 copied to clipboard

退出游戏后PCL小概率无法正常播放或重新播放音乐

Open FUFNOU opened this issue 1 year ago • 5 comments

检查项

描述

游戏结束后PCL内的音乐按钮左键右键无法播放或重新播放音乐

重现步骤

1.启动游戏 2.退出游戏

日志与附件

https://github.com/user-attachments/assets/07b9937a-19c0-4bac-9fe4-27bd33048d46

FUFNOU avatar Aug 03 '24 13:08 FUFNOU

上传日志

allMagicNB avatar Aug 03 '24 13:08 allMagicNB

@allMagicNB 日志:Log1.txt

FUFNOU avatar Aug 03 '24 13:08 FUFNOU

我没看出问题……

allMagicNB avatar Aug 03 '24 13:08 allMagicNB

但PCL的背景音乐在退出游戏后无法播放,之前并没有这样的问题,重启PCL就恢复了。游戏内音乐配置如下 image

FUFNOU avatar Aug 03 '24 13:08 FUFNOU

# Ln 637
[21:23:53.014] Runtime Invoke 1366#:线程执行失败:未将对象引用设置到对象的实例。
   在 Microsoft.VisualBasic.CompilerServices.Symbols.Container.InvokeMethod(Method TargetProcedure, Object[] Arguments, Boolean[] CopyBack, BindingFlags Flags)
   在 Microsoft.VisualBasic.CompilerServices.NewLateBinding.CallMethod(Container BaseReference, String MethodName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, BindingFlags InvocationFlags, Boolean ReportErrors, ResolutionFailure& Failure)
   在 Microsoft.VisualBasic.CompilerServices.NewLateBinding.ObjectLateCall(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, Boolean IgnoreReturn)
   在 Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateCall(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, Boolean IgnoreReturn)
   在 PCL.ModMusic._Closure$__._Lambda$__14-0()
   在 PCL.ModBase._Closure$__124-0._Lambda$__0()
错误类型:System.NullReferenceException
[21:23:53.034] [UI] 弹出提示:已取消启动!
[21:23:53.044] [Taskbar] Minecraft 启动 已移出任务列表

有个对象引用出错了,应该是这个导致的。

MoYuan-CN avatar Aug 03 '24 20:08 MoYuan-CN

#3708,在 2.7.4 尝试修复,好像是没修掉……? 但我这没法重现,需要一个稳定的重现方法……


Log 中的 PCL.ModMusic._Closure$__._Lambda$__14-0() 是这里: image

但这三行代码根本不可能报出 NullReferenceException,见了鬼了……

LTCatt avatar Nov 04 '24 11:11 LTCatt

由于无人能复现暂时关闭

LTCatt avatar Dec 04 '24 11:12 LTCatt

发现了一个可以 100% 复现的方法……

在 PCL 播放音乐时,打开声音设置,然后禁用当前的输出设备(拔出设备也是相同的效果)。

此时,PCL 的播放进度条会卡住不动,无论如何点击音乐图标也不会发出声音(如本 Issue 附件视频中所示)。 再搭配上 游戏退出后自动开始播放 这一功能,Minecraft 退出后 PCL 就会爆出 System.NullReferenceException

相关 Log:Log1.txt


注:怀疑与 #3908 为相同成因 又注:上述复现步骤与 #480 大致相同

lactobionicAcid avatar Jan 30 '25 13:01 lactobionicAcid

真的播放不了了,神一般的bug体质啊

FUFNOU avatar Jan 30 '25 14:01 FUFNOU

就是说,为啥不开我的呢?(3708)[https://github.com/Hex-Dragon/PCL2/issues/3708]

wuwenjun9939 avatar Feb 03 '25 13:02 wuwenjun9939