VideoSceneModel.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { makeAutoObservable } from "mobx";
  2. import { EventBus } from "@dage/utils";
  3. export class VideoSceneModel {
  4. event = new EventBus();
  5. /**
  6. * 播放中
  7. * @default true
  8. */
  9. playing = true;
  10. constructor() {
  11. makeAutoObservable(this);
  12. }
  13. /** 播放 */
  14. play() {
  15. window.ReactKrpanoActionProxy?.call("plugin[video].play()");
  16. }
  17. /** 暂停 */
  18. pause() {
  19. window.ReactKrpanoActionProxy?.call("plugin[video].pause()");
  20. }
  21. }
  22. export const videoSceneModel = new VideoSceneModel();
  23. window.onVideoSceneReady = () => {
  24. videoSceneModel.event.emit("Event.videoScene.ready", undefined);
  25. };
  26. window.onVideoScenePlay = () => {
  27. videoSceneModel.playing = true;
  28. videoSceneModel.event.emit("Event.videoScene.play", undefined);
  29. };
  30. window.onVideoScenePaused = () => {
  31. videoSceneModel.playing = false;
  32. videoSceneModel.event.emit("Event.videoScene.pause", undefined);
  33. };
  34. window.onVideoSceneComplete = () => {
  35. videoSceneModel.event.emit("Event.videoScene.complete", undefined);
  36. };
  37. window.onVideoSceneError = (error: string) => {
  38. videoSceneModel.event.emit("Event.videoScene.error", error);
  39. };