({
audioTracks,
children,
})
| 10 | const AudioTrackContext = createContext<Record<string, MediaStreamTrack>>({}) |
| 11 | |
| 12 | export const PullAudioTracks: FC<PullAudioTracksProps> = ({ |
| 13 | audioTracks, |
| 14 | children, |
| 15 | }) => { |
| 16 | const [audioTrackMap, setAudioTrackMap] = useState< |
| 17 | Record<string, MediaStreamTrack> |
| 18 | >({}) |
| 19 | |
| 20 | return ( |
| 21 | <AudioTrackContext.Provider value={audioTrackMap}> |
| 22 | <AudioStream |
| 23 | tracksToPull={audioTracks} |
| 24 | onTrackAdded={(id, track) => |
| 25 | setAudioTrackMap((previous) => ({ |
| 26 | ...previous, |
| 27 | [id]: track, |
| 28 | })) |
| 29 | } |
| 30 | onTrackRemoved={(id) => { |
| 31 | setAudioTrackMap((previous) => { |
| 32 | const update = { ...previous } |
| 33 | delete update[id] |
| 34 | return update |
| 35 | }) |
| 36 | }} |
| 37 | /> |
| 38 | {children} |
| 39 | </AudioTrackContext.Provider> |
| 40 | ) |
| 41 | } |
| 42 | |
| 43 | export function usePulledAudioTracks() { |
| 44 | return useContext(AudioTrackContext) |
nothing calls this directly
no outgoing calls
no test coverage detected