Is your feature request related to a problem? Please describe.
是的,如果不用fvp ,基于avplayer 可以实现原生的画中画,但是视频格式兼容性就差了很多,所以还得用fvp
Describe the solution you'd like
经过完整诊断(view 树 + layer 树双重遍历),彻底确认当前环境(video_player_avfoundation 2.9.7 + 当前 Flutter 版本)下,iOS 上视频画面被合成进 FlutterMetalLayer,原生视图树里不存在 AVPlayerLayer。所以不能构建Android那种画中画。
日志相关:
flutter: [PiP诊断]
flutter: findPlayerLayerDebug: windows=1
flutter: window key=true root=FlutterView
flutter: AVPlayerLayer NOT found. View tree:
flutter: - VIEW FlutterView [layer:FlutterMetalLayer playerLayer:false hasPlayer:false subs:1 sublayers:1]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:414.0x0.0 sublayers:2]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:7.0x3.0 sublayers:1]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:7.0x3.0 sublayers:0]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:3.0x36.0 sublayers:1]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:3.0x36.0 sublayers:0]
flutter: - VIEW UIScrollView [layer:CALayer playerLayer:false hasPlayer:false subs:2 sublayers:2]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:7.0x3.0 sublayers:1]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:7.0x3.0 sublayers:0]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:3.0x36.0 sublayers:1]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:3.0x36.0 sublayers:0]
Describe alternatives you've considered
我想过替代方方案,比如:https://pub.dev/packages/better_native_video_player,但这个播放器还是很多格式不用兼容。
Additional context
然后我用AI帮我分析各种播放和别的解决方案。还是希望作者你做一个兼容回退。
我还是希望用图上第四个方案,从技术看难吗?

Is your feature request related to a problem? Please describe.

是的,如果不用fvp ,基于avplayer 可以实现原生的画中画,但是视频格式兼容性就差了很多,所以还得用fvp
Describe the solution you'd like
经过完整诊断(view 树 + layer 树双重遍历),彻底确认当前环境(video_player_avfoundation 2.9.7 + 当前 Flutter 版本)下,iOS 上视频画面被合成进 FlutterMetalLayer,原生视图树里不存在 AVPlayerLayer。所以不能构建Android那种画中画。
日志相关:
flutter: [PiP诊断]
flutter: findPlayerLayerDebug: windows=1
flutter: window key=true root=FlutterView
flutter: AVPlayerLayer NOT found. View tree:
flutter: - VIEW FlutterView [layer:FlutterMetalLayer playerLayer:false hasPlayer:false subs:1 sublayers:1]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:414.0x0.0 sublayers:2]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:7.0x3.0 sublayers:1]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:7.0x3.0 sublayers:0]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:3.0x36.0 sublayers:1]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:3.0x36.0 sublayers:0]
flutter: - VIEW UIScrollView [layer:CALayer playerLayer:false hasPlayer:false subs:2 sublayers:2]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:7.0x3.0 sublayers:1]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:7.0x3.0 sublayers:0]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:3.0x36.0 sublayers:1]
flutter: - LAYER CALayer [playerLayer:false hasPlayer:false frame:3.0x36.0 sublayers:0]
Describe alternatives you've considered
我想过替代方方案,比如:https://pub.dev/packages/better_native_video_player,但这个播放器还是很多格式不用兼容。
Additional context
然后我用AI帮我分析各种播放和别的解决方案。还是希望作者你做一个兼容回退。
我还是希望用图上第四个方案,从技术看难吗?