Guest User

Untitled

a guest
Sep 16th, 2025
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class PlayerFactory {
  2.   static createPlayer(provider: VoiceProvider) {
  3.     switch (provider) {
  4.       case "local":
  5.         return new LocalVoicePlayer();
  6.       case "gemini":
  7.         return new GeminiVoicePlayer();
  8.       case "sherpa":
  9.         return new SherpaVoicePlayer();
  10.       default:
  11.         throw new Error(`Unknown provider: ${provider}`);
  12.     }
  13.   }
  14.  
  15.   static createShortPlayer(provider: VoiceProvider) {
  16.     switch (provider) {
  17.       case "local":
  18.         return new ShortLocalVoicePlayer();
  19.       case "gemini":
  20.         return new ShortGeminiVoicePlayer();  
  21.       case "sherpa":
  22.         return new ShortSherpaVoicePlayer();
  23.       default:
  24.         throw new Error(`Unknown provider: ${provider}`);
  25.     }
  26.   }
  27. }
  28.  
  29. function useVoicePlayers() {
  30.   const voiceProvider = useAppStore.use.voiceProvider();
  31.   const { setPlayer, setShortPlayer } = useAppActions();
  32.  
  33.   useEffect(() => {
  34.     const player = PlayerFactory.createPlayer(voiceProvider);
  35.     const shortPlayer = PlayerFactory.createShortPlayer(voiceProvider);
  36.    
  37.     setPlayer(player);
  38.     setShortPlayer(shortPlayer);
  39.    
  40.     // Cleanup
  41.     return () => {
  42.       player.cleanup?.();
  43.       shortPlayer.cleanup?.();
  44.     };
  45.   }, [voiceProvider, setPlayer, setShortPlayer]);
  46. }
Advertisement
Add Comment
Please, Sign In to add comment