ijk_controller_manager.dart 838 B

1234567891011121314151617181920212223242526272829303132
  1. import 'package:flutter_ijkplayer/src/ijkplayer.dart';
  2. import 'package:flutter_ijkplayer/src/helper/logutil.dart';
  3. class IjkMediaPlayerManager {
  4. final ijkPlayerList = <IjkMediaController>[];
  5. static IjkMediaPlayerManager _instance;
  6. factory IjkMediaPlayerManager() {
  7. _instance ??= IjkMediaPlayerManager._();
  8. return _instance;
  9. }
  10. IjkMediaPlayerManager._();
  11. void add(IjkMediaController ijkMediaController) {
  12. ijkPlayerList.add(ijkMediaController);
  13. }
  14. void remove(IjkMediaController ijkMediaController) {
  15. ijkPlayerList.remove(ijkMediaController);
  16. }
  17. Future<void> pauseOther(IjkMediaController ijkMediaController) async {
  18. for (var ctl in this.ijkPlayerList) {
  19. if (ctl != ijkMediaController) {
  20. LogUtils.verbose("ctl ${ctl.textureId} will pause");
  21. ctl.pause();
  22. }
  23. }
  24. }
  25. }