123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- import { MEDIA_TYPE } from '../media';
-
- /**
- * Returns local audio track.
- *
- * @param {Track[]} tracks - List of all tracks.
- * @returns {(Track|undefined)}
- */
- export function getLocalAudioTrack(tracks) {
- return getLocalTrack(tracks, MEDIA_TYPE.AUDIO);
- }
-
- /**
- * Returns local track by media type.
- *
- * @param {Track[]} tracks - List of all tracks.
- * @param {MEDIA_TYPE} mediaType - Media type.
- * @returns {(Track|undefined)}
- */
- export function getLocalTrack(tracks, mediaType) {
- return tracks.find(t => t.local && t.mediaType === mediaType);
- }
-
- /**
- * Returns local video track.
- *
- * @param {Track[]} tracks - List of all tracks.
- * @returns {(Track|undefined)}
- */
- export function getLocalVideoTrack(tracks) {
- return getLocalTrack(tracks, MEDIA_TYPE.VIDEO);
- }
-
- /**
- * Returns track of specified media type for specified participant id.
- *
- * @param {Track[]} tracks - List of all tracks.
- * @param {MEDIA_TYPE} mediaType - Media type.
- * @param {string} participantId - Participant ID.
- * @returns {(Track|undefined)}
- */
- export function getTrackByMediaTypeAndParticipant(
- tracks,
- mediaType,
- participantId) {
- return tracks.find(
- t => t.participantId === participantId && t.mediaType === mediaType
- );
- }
-
- /**
- * Returns the track if any which corresponds to a specific instance
- * of JitsiLocalTrack or JitsiRemoteTrack.
- *
- * @param {Track[]} tracks - List of all tracks.
- * @param {(JitsiLocalTrack|JitsiRemoteTrack)} jitsiTrack - JitsiTrack instance.
- * @returns {(Track|undefined)}
- */
- export function getTrackByJitsiTrack(tracks, jitsiTrack) {
- return tracks.find(t => t.jitsiTrack === jitsiTrack);
- }
-
- /**
- * Returns tracks of specified media type.
- *
- * @param {Track[]} tracks - List of all tracks.
- * @param {MEDIA_TYPE} mediaType - Media type.
- * @returns {Track[]}
- */
- export function getTracksByMediaType(tracks, mediaType) {
- return tracks.filter(t => t.mediaType === mediaType);
- }
-
- /**
- * Mute or unmute local track if any.
- *
- * @param {JitsiLocalTrack} track - Track instance.
- * @param {boolean} muted - If audio stream should be muted or unmuted.
- * @returns {Promise}
- */
- export function setTrackMuted(track, muted) {
- if (!track) {
- return Promise.resolve();
- }
-
- const f = muted ? 'mute' : 'unmute';
-
- return track[f]()
- .catch(err => {
- console.warn(`Track ${f} was rejected:`, err);
- throw err;
- });
- }
|