⏺ 两套代码完全独立，确认现状：

  player_plugin/lib/
  ├── player_plugin.dart          ← 共享的 PlayerController + PlayerView（原生 UI）
  ├── nova_native_player.dart     ← 导出入口
  └── ui/                         ← Dart UI（独立，不影响原生）
      ├── player_view_with_controls.dart  ← Dart UI 入口
      ├── mobile_overlay.dart     ← 控件层
      ├── progress_bar.dart       ← 进度条
      ├── gesture_layer.dart      ← 手势层
      ├── fullscreen_page.dart    ← 全屏页面
      └── player_state.dart       ← 状态管理

  切换方式就是一行代码：

  // 用原生 UI（当前）
  PlayerView(controller: _controller)

  // 用 Dart UI（将来）
  PlayerViewWithControls(controller: _controller)

  两者共享同一个 PlayerController，底层都走同一个 MethodChannel 和 TestComponent。区别只是：
  - PlayerView → 原生 UIKit 画控件
  - PlayerViewWithControls → 隐藏原生控件，Dart 自己画