/ src / logic / playbackControl.ts
playbackControl.ts
 1  export async function togglePlayback(currentStream: MediaStream) {
 2    try {
 3      if (!currentStream) return false;
 4  
 5      // Toggle both audio and video tracks
 6      const tracks = currentStream.getTracks();
 7      tracks.forEach((track) => {
 8        track.enabled = !track.enabled;
 9      });
10  
11      // Update play state based on audio track
12      const audioTrack = currentStream.getAudioTracks()[0];
13      const isPlaying = audioTrack?.enabled ?? false;
14  
15      // Send message to content script to sync video state
16      chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
17        const activeTab = tabs[0];
18        if (activeTab?.id) {
19          chrome.tabs.sendMessage(activeTab.id, {
20            action: isPlaying ? "resumeStream" : "pauseStream",
21            streamEnabled: isPlaying,
22          });
23        }
24      });
25  
26      return isPlaying;
27    } catch (e) {
28      console.warn("Error toggling playback:", e);
29      return false;
30    }
31  }