diff options
author | Daniel Calviño Sánchez <danxuliu@gmail.com> | 2022-03-30 23:28:02 +0300 |
---|---|---|
committer | Daniel Calviño Sánchez <danxuliu@gmail.com> | 2022-03-31 18:09:56 +0300 |
commit | a7a9e8368a7ac5795a46ab873a55206998dd3c6a (patch) | |
tree | 9aad071411047332b3948a509ecb61bd037ab25d /src/utils | |
parent | c91ebaae58081893a36661d8dc284add027aa617 (diff) |
Add getters to check if media is allowed or disallowed
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/media/pipeline/MediaDevicesSource.js | 8 | ||||
-rw-r--r-- | src/utils/media/pipeline/MediaDevicesSource.spec.js | 21 | ||||
-rw-r--r-- | src/utils/webrtc/simplewebrtc/localmedia.js | 8 |
3 files changed, 37 insertions, 0 deletions
diff --git a/src/utils/media/pipeline/MediaDevicesSource.js b/src/utils/media/pipeline/MediaDevicesSource.js index 8f5e7f9e5..6a24b2415 100644 --- a/src/utils/media/pipeline/MediaDevicesSource.js +++ b/src/utils/media/pipeline/MediaDevicesSource.js @@ -68,6 +68,14 @@ export default class MediaDevicesSource extends TrackSource { this._active = false } + isAudioAllowed() { + return this._audioAllowed + } + + isVideoAllowed() { + return this._videoAllowed + } + setAudioAllowed(audioAllowed) { if (this._audioAllowed === audioAllowed) { return diff --git a/src/utils/media/pipeline/MediaDevicesSource.spec.js b/src/utils/media/pipeline/MediaDevicesSource.spec.js index f5a845242..7cdb14b6a 100644 --- a/src/utils/media/pipeline/MediaDevicesSource.spec.js +++ b/src/utils/media/pipeline/MediaDevicesSource.spec.js @@ -161,6 +161,27 @@ describe('MediaDevicesSource', () => { jest.restoreAllMocks() }) + describe('get allowed state', () => { + test('audio and video are allowed by default', () => { + expect(mediaDevicesSource.isAudioAllowed()).toBe(true) + expect(mediaDevicesSource.isVideoAllowed()).toBe(true) + }) + + test('after modifying the audio state', () => { + mediaDevicesSource.setAudioAllowed(false) + + expect(mediaDevicesSource.isAudioAllowed()).toBe(false) + expect(mediaDevicesSource.isVideoAllowed()).toBe(true) + }) + + test('after modifying the video state', () => { + mediaDevicesSource.setVideoAllowed(false) + + expect(mediaDevicesSource.isAudioAllowed()).toBe(true) + expect(mediaDevicesSource.isVideoAllowed()).toBe(false) + }) + }) + describe('start', () => { /** diff --git a/src/utils/webrtc/simplewebrtc/localmedia.js b/src/utils/webrtc/simplewebrtc/localmedia.js index caa2a25c7..de8759f61 100644 --- a/src/utils/webrtc/simplewebrtc/localmedia.js +++ b/src/utils/webrtc/simplewebrtc/localmedia.js @@ -288,6 +288,10 @@ LocalMedia.prototype.stopScreenShare = function() { } // Audio controls +LocalMedia.prototype.isAudioAllowed = function() { + return this._mediaDevicesSource.isAudioAllowed() +} + LocalMedia.prototype.disallowAudio = function() { this._mediaDevicesSource.setAudioAllowed(false) this.emit('audioDisallowed') @@ -309,6 +313,10 @@ LocalMedia.prototype.unmute = function() { } // Video controls +LocalMedia.prototype.isVideoAllowed = function() { + return this._mediaDevicesSource.isVideoAllowed() +} + LocalMedia.prototype.disallowVideo = function() { this._mediaDevicesSource.setVideoAllowed(false) this.emit('videoDisallowed') |