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 }