检查清单
Assign
版本号
7a6f5d9
复现步骤
- 在该 armeabi-v7a Android TV 上安装 PiliNara
- 打开任意需要独立音频流的普通视频(如用户投稿视频)
- 视频画面黑屏无声音
预期行为
视频和音频均正常播放。
实际行为
视频画面黑屏无声音。
错误日志
------- DEVICE INFO -------
id: SP1A.210812.016
board: huanglong
bootloader: unknown
brand: huanglong
device: newlink
display: newlink_hi3751v660 HuanglongV100R002C01SPC004B010
fingerprint: HiDPT/Hi3751V351_DMO/Hi3751V350:12/SP1A.210812.016/jenkins02032133:userdebug/dev-keys
hardware: huanglong
host: 220
isPhysicalDevice: true
manufacturer: HL2.0
model: huanglong
product: newlink_hi3751v660
tags: dev-keys
type: userdebug
versionBaseOs:
versionCodename: REL
versionIncremental: eng.jenkin.20260203.203802
versionPreviewSdk: 0
versionRelease: 12
versionSdk: 31
versionSecurityPatch: 2021-10-05
------- APP INFO -------
environment: debug
version: 2.0.2-aeb4235a5
appName: PiliNara debug
buildNumber: 4954
packageName: com.example.pilinara.debug
------- ERROR -------
Duplicate GlobalKey detected in widget tree.
The following GlobalKey was specified multiple times in the widget tree. This will lead to parts of the widget tree being truncated unexpectedly, because the second time a key is seen, the previous instance is moved to the new location. The key was:
- [GlobalKey#a1e0c]
This was determined by noticing that after the widget with the above global key was moved out of its previous parent, that previous parent never updated during this frame, meaning that it either did not update at all or updated before the widget was moved, in either case implying that it still thinks that it should have a child with that global key.
The specific parent that did not update after having one or more children forcibly removed due to GlobalKey reparenting is:
- Stack(alignment: AlignmentDirectional.topStart, fit: loose, clipBehavior: none, dependencies: [Directionality], renderObject: RenderStack#0c216)
A GlobalKey can only be specified on one widget at a time in the widget tree.
------- STACK TRACE -------
#0 BuildOwner.finalizeTree.<anonymous closure> (package:flutter/src/widgets/framework.dart:3409:15)
#1 BuildOwner.finalizeTree (package:flutter/src/widgets/framework.dart:3434:8)
#2 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1309:19)
#3 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:495:5)
#4 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1430:15)
#5 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1345:9)
#6 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1198:5)
#7 _invoke (dart:ui/hooks.dart:356:13)
#8 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:444:5)
#9 _drawFrame (dart:ui/hooks.dart:328:31)
------- CUSTOM INFO -------
BuildConfig:
Build Time: 2026-04-07 15:27:13
Commit Hash: aeb4235a516af7224370b9d1491ad68f507df8f8
------- DEVICE INFO -------
id: SP1A.210812.016
board: huanglong
bootloader: unknown
brand: huanglong
device: newlink
display: newlink_hi3751v660 HuanglongV100R002C01SPC004B010
fingerprint: HiDPT/Hi3751V351_DMO/Hi3751V350:12/SP1A.210812.016/jenkins02032133:userdebug/dev-keys
hardware: huanglong
host: 220
isPhysicalDevice: true
manufacturer: HL2.0
model: huanglong
product: newlink_hi3751v660
tags: dev-keys
type: userdebug
versionBaseOs:
versionCodename: REL
versionIncremental: eng.jenkin.20260203.203802
versionPreviewSdk: 0
versionRelease: 12
versionSdk: 31
versionSecurityPatch: 2021-10-05
------- APP INFO -------
environment: debug
version: 2.0.2-aeb4235a5
appName: PiliNara debug
buildNumber: 4954
packageName: com.example.pilinara.debug
------- ERROR -------
A RenderFlex overflowed by 80 pixels on the right.
------- STACK TRACE -------
null
------- CUSTOM INFO -------
BuildConfig:
Build Time: 2026-04-07 15:27:13
Commit Hash: aeb4235a516af7224370b9d1491ad68f507df8f8
------- DEVICE INFO -------
id: SP1A.210812.016
board: huanglong
bootloader: unknown
brand: huanglong
device: newlink
display: newlink_hi3751v660 HuanglongV100R002C01SPC004B010
fingerprint: HiDPT/Hi3751V351_DMO/Hi3751V350:12/SP1A.210812.016/jenkins02032133:userdebug/dev-keys
hardware: huanglong
host: 220
isPhysicalDevice: true
manufacturer: HL2.0
model: huanglong
product: newlink_hi3751v660
tags: dev-keys
type: userdebug
versionBaseOs:
versionCodename: REL
versionIncremental: eng.jenkin.20260203.203802
versionPreviewSdk: 0
versionRelease: 12
versionSdk: 31
versionSecurityPatch: 2021-10-05
------- APP INFO -------
environment: debug
version: 2.0.2-aeb4235a5
appName: PiliNara debug
buildNumber: 4954
packageName: com.example.pilinara.debug
------- ERROR -------
error: main: Command loadfile: argument index can't be parsed: option parameter could not be parsed.
------- STACK TRACE -------
#0 Catcher2.reportCheckedError (package:catcher_2/core/catcher_2.dart:512:31)
#1 Utils.reportError (package:PiliPlus/utils/utils.dart:201:18)
#2 PlPlayerController._startListeners.<anonymous closure> (package:PiliPlus/plugin/pl_player/controller.dart:996:19)
#3 _RootZone.runUnaryGuarded (dart:async/zone.dart:891:10)
#4 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:381:11)
#5 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:312:7)
#6 _ForwardingStreamSubscription._add (dart:async/stream_pipe.dart:154:11)
#7 _DistinctStream._handleData (dart:async/stream_pipe.dart:532:14)
#8 _ForwardingStreamSubscription._handleData (dart:async/stream_pipe.dart:184:13)
#9 _RootZone.runUnaryGuarded (dart:async/zone.dart:891:10)
#10 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:381:11)
#11 _DelayedData.perform (dart:async/stream_impl.dart:573:14)
#12 _PendingEvents.handleNext (dart:async/stream_impl.dart:678:11)
#13 _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:649:7)
#14 _microtaskLoop (dart:async/schedule_microtask.dart:40:35)
#15 _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)
------- CUSTOM INFO -------
BuildConfig:
Build Time: 2026-04-07 15:27:13
Commit Hash: aeb4235a516af7224370b9d1491ad68f507df8f8
------- DEVICE INFO -------
id: SP1A.210812.016
board: huanglong
bootloader: unknown
brand: huanglong
device: newlink
display: newlink_hi3751v660 HuanglongV100R002C01SPC004B010
fingerprint: HiDPT/Hi3751V351_DMO/Hi3751V350:12/SP1A.210812.016/jenkins02032133:userdebug/dev-keys
hardware: huanglong
host: 220
isPhysicalDevice: true
manufacturer: HL2.0
model: huanglong
product: newlink_hi3751v660
tags: dev-keys
type: userdebug
versionBaseOs:
versionCodename: REL
versionIncremental: eng.jenkin.20260203.203802
versionPreviewSdk: 0
versionRelease: 12
versionSdk: 31
versionSecurityPatch: 2021-10-05
------- APP INFO -------
environment: debug
version: 2.0.2-aeb4235a5
appName: PiliNara debug
buildNumber: 4954
packageName: com.example.pilinara.debug
------- ERROR -------
error: main: The loadfile option must be an integer: audio-files="https\://upos-sz-estgoss.bilivideo.com/upgcxcode/72/29/33381352972/33381352972-1-30280.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&mid=0&uipk=5&nbs=1&oi=2742939466&os=estgoss&trid=1bd9b22849e94527b2029d2ef35dda2u&deadline=1775665564&platform=pc&gen=playurlv3&og=ali&upsig=eae5a6616bc4deb4e5ef3001879ec4ec&uparams=e,mid,uipk,nbs,oi,os,trid,deadline,platform,gen,og&bvc=vod&nettype=0&bw=165912&buvid=F6E15B13-02A5-4CBE-8543-24957377E82F43300infoc&build=0&dl=0&f=u_0_0&qn_dyeid=e91ce52f6f77375d0076b24269d6657c&agrr=0&orderid=1,3"
------- STACK TRACE -------
#0 Catcher2.reportCheckedError (package:catcher_2/core/catcher_2.dart:512:31)
#1 Utils.reportError (package:PiliPlus/utils/utils.dart:201:18)
#2 PlPlayerController._startListeners.<anonymous closure> (package:PiliPlus/plugin/pl_player/controller.dart:996:19)
#3 _RootZone.runUnaryGuarded (dart:async/zone.dart:891:10)
#4 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:381:11)
#5 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:312:7)
#6 _ForwardingStreamSubscription._add (dart:async/stream_pipe.dart:154:11)
#7 _DistinctStream._handleData (dart:async/stream_pipe.dart:532:14)
#8 _ForwardingStreamSubscription._handleData (dart:async/stream_pipe.dart:184:13)
#9 _RootZone.runUnaryGuarded (dart:async/zone.dart:891:10)
#10 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:381:11)
#11 _DelayedData.perform (dart:async/stream_impl.dart:573:14)
#12 _PendingEvents.handleNext (dart:async/stream_impl.dart:678:11)
#13 _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:649:7)
#14 _microtaskLoop (dart:async/schedule_microtask.dart:40:35)
#15 _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)
------- CUSTOM INFO -------
BuildConfig:
Build Time: 2026-04-07 15:27:13
Commit Hash: aeb4235a516af7224370b9d1491ad68f507df8f8
------- DEVICE INFO -------
id: SP1A.210812.016
board: huanglong
bootloader: unknown
brand: huanglong
device: newlink
display: newlink_hi3751v660 HuanglongV100R002C01SPC004B010
fingerprint: HiDPT/Hi3751V351_DMO/Hi3751V350:12/SP1A.210812.016/jenkins02032133:userdebug/dev-keys
hardware: huanglong
host: 220
isPhysicalDevice: true
manufacturer: HL2.0
model: huanglong
product: newlink_hi3751v660
tags: dev-keys
type: userdebug
versionBaseOs:
versionCodename: REL
versionIncremental: eng.jenkin.20260203.203802
versionPreviewSdk: 0
versionRelease: 12
versionSdk: 31
versionSecurityPatch: 2021-10-05
------- APP INFO -------
environment: debug
version: 2.0.2-aeb4235a5
appName: PiliNara debug
buildNumber: 4954
packageName: com.example.pilinara.debug
------- ERROR -------
invalid parameter
------- STACK TRACE -------
#0 Catcher2.reportCheckedError (package:catcher_2/core/catcher_2.dart:512:31)
#1 Utils.reportError (package:PiliPlus/utils/utils.dart:201:18)
#2 PlPlayerController._startListeners.<anonymous closure> (package:PiliPlus/plugin/pl_player/controller.dart:1049:17)
#3 _RootZone.runUnaryGuarded (dart:async/zone.dart:891:10)
#4 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:381:11)
#5 _DelayedData.perform (dart:async/stream_impl.dart:573:14)
#6 _PendingEvents.handleNext (dart:async/stream_impl.dart:678:11)
#7 _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:649:7)
#8 _microtaskLoop (dart:async/schedule_microtask.dart:40:35)
#9 _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)
------- CUSTOM INFO -------
BuildConfig:
Build Time: 2026-04-07 15:27:13
Commit Hash: aeb4235a516af7224370b9d1491ad68f507df8f8
相关信息
根因分析
根因 1:旧版 mpv 不支持 loadfile 的 options 参数
media_kit 内部调用 loadfile <url> replace 0 audio-files="https\://..." 时,旧版 libmpv 无法解析 options 字符串参数,整个 loadfile 命令失败,视频和音频都无法加载。
错误信息:Command loadfile: argument index can't be parsed
根因 2:loadfile replace 会清除预设的 audio-files 属性
即使跳过 extras,提前通过 change-list audio-files set 预设的值也会在 loadfile replace 执行时被清除,导致音频流失效。
根因 3:change-list audio-files set <url> 中 URL 的 : 未转义
旧版 mpv 的选项值解析器将 : 作为 key-value 分隔符,https://... 被错误解析为:
- key:
https
- value:
//upos-sz-mirror08h.bilivideo.com/...(不完整路径)
错误信息:Cannot open file 'https': No such file or directory
相关文件
lib/plugin/pl_player/controller.dart(_createVideoController、refreshPlayer、stream.error 处理)
检查清单
Assign
版本号
7a6f5d9
复现步骤
预期行为
视频和音频均正常播放。
实际行为
视频画面黑屏无声音。
错误日志
相关信息
根因分析
根因 1:旧版 mpv 不支持
loadfile的 options 参数media_kit内部调用loadfile <url> replace 0 audio-files="https\://..."时,旧版 libmpv 无法解析options字符串参数,整个loadfile命令失败,视频和音频都无法加载。错误信息:
Command loadfile: argument index can't be parsed根因 2:
loadfile replace会清除预设的audio-files属性即使跳过
extras,提前通过change-list audio-files set预设的值也会在loadfile replace执行时被清除,导致音频流失效。根因 3:
change-list audio-files set <url>中 URL 的:未转义旧版 mpv 的选项值解析器将
:作为 key-value 分隔符,https://...被错误解析为:https//upos-sz-mirror08h.bilivideo.com/...(不完整路径)错误信息:
Cannot open file 'https': No such file or directory相关文件
lib/plugin/pl_player/controller.dart(_createVideoController、refreshPlayer、stream.error处理)