index.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import { defineStore } from 'pinia';
  2. import { MediaTypeEnum } from '@/interface';
  3. import { mobileRouterName } from '@/router';
  4. export type AppRootState = {
  5. muted: boolean;
  6. navList: { routeName: string; name: string }[];
  7. allTrack: {
  8. /** 1开启;2关闭 */
  9. audio: number;
  10. /** 1开启;2关闭 */
  11. video: number;
  12. id: string;
  13. mediaName: string;
  14. type: MediaTypeEnum;
  15. track?: MediaStreamTrack;
  16. stream?: MediaStream;
  17. streamid: string;
  18. trackid: string;
  19. canvasDom?: fabric.Image;
  20. initScale?: number;
  21. hidden?: boolean;
  22. }[];
  23. };
  24. export const useAppStore = defineStore('app', {
  25. state: (): AppRootState => {
  26. return {
  27. muted: true,
  28. navList: [
  29. { routeName: mobileRouterName.h5, name: '频道' },
  30. { routeName: mobileRouterName.h5Rank, name: '排行' },
  31. { routeName: mobileRouterName.h5Profile, name: '我的' },
  32. ],
  33. allTrack: [],
  34. };
  35. },
  36. actions: {
  37. setMuted(res: AppRootState['muted']) {
  38. this.muted = res;
  39. },
  40. setAllTrack(res: AppRootState['allTrack']) {
  41. this.allTrack = res;
  42. },
  43. getTrackInfo() {
  44. const res = { audio: 0, video: 0 };
  45. this.allTrack.forEach((item) => {
  46. // if (item.stream) {
  47. if (item.audio === 1) {
  48. res.audio += 1;
  49. }
  50. if (item.video === 1) {
  51. res.video += 1;
  52. }
  53. // }
  54. });
  55. return res;
  56. },
  57. },
  58. });