@ashetm/ng-mediastream
Version:
``@ashetm/ng-mediastream`` is a library that simplify manipulation of API ``MediaStream``.
62 lines • 9.36 kB
JavaScript
import { Injectable } from '@angular/core';
import { combineLatest } from 'rxjs';
import { map } from 'rxjs/operators';
import * as i0 from "@angular/core";
import * as i1 from "./mediastream-camera.service";
import * as i2 from "./mediastream-microphone.service";
export class MediastreamCameraMicrophoneService {
get mediastreamCameraConstraints() {
return this._mediastreamCameraService.mediastreamConstraints;
}
get mediastreamMicrophoneConstraints() {
return this._mediastreamMicrophoneService.mediastreamConstraints;
}
constructor(_mediastreamCameraService, _mediastreamMicrophoneService) {
this._mediastreamCameraService = _mediastreamCameraService;
this._mediastreamMicrophoneService = _mediastreamMicrophoneService;
this.currentCameraMediaDevice$ = this._mediastreamCameraService.currentMediaDevice$;
this.currentMicrophoneMediaDevice$ = this._mediastreamMicrophoneService.currentMediaDevice$;
this.mediastream$ = combineLatest([
this._mediastreamCameraService.mediastream$,
this._mediastreamMicrophoneService.mediastream$
]).pipe(map(([mediastreamCamera, mediastreamMicrophone]) => {
const mediastreamCameraTracks = mediastreamCamera.getVideoTracks();
const mediastreamMicrophoneTracks = mediastreamMicrophone.getAudioTracks();
const mediastreamTracks = [
...mediastreamCameraTracks,
...mediastreamMicrophoneTracks
];
return new MediaStream(mediastreamTracks);
}));
}
disableCamera() {
this._mediastreamCameraService.disableCamera();
}
disableMicrophone() {
this._mediastreamMicrophoneService.disableMicrophone();
}
enableCamera() {
this._mediastreamCameraService.enableCamera();
}
enableMicrophone() {
this._mediastreamMicrophoneService.enableMicrophone();
}
toggleCamera() {
this._mediastreamCameraService.toggleCamera();
}
toggleMicrophone() {
this._mediastreamMicrophoneService.toggleMicrophone();
}
updateCameraDevice(device) {
this._mediastreamCameraService.updateCameraDevice(device);
}
updateMicrophoneDevice(device) {
this._mediastreamMicrophoneService.updateMicrophoneDevice(device);
}
static { this.ɵfac = function MediastreamCameraMicrophoneService_Factory(t) { return new (t || MediastreamCameraMicrophoneService)(i0.ɵɵinject(i1.MediastreamCameraService), i0.ɵɵinject(i2.MediastreamMicrophoneService)); }; }
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MediastreamCameraMicrophoneService, factory: MediastreamCameraMicrophoneService.ɵfac }); }
}
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MediastreamCameraMicrophoneService, [{
type: Injectable
}], function () { return [{ type: i1.MediastreamCameraService }, { type: i2.MediastreamMicrophoneService }]; }, null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWFzdHJlYW0tY2FtZXJhLW1pY3JvcGhvbmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc3RyZWFtL3NyYy9saWIvbWVkaWFzdHJlYW0tY2FtZXJhLW1pY3JvcGhvbmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBU3JDLE1BQU0sT0FBTyxrQ0FBa0M7SUF3QjdDLElBQUksNEJBQTRCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLHNCQUFzQixDQUFDO0lBQy9ELENBQUM7SUFFRCxJQUFJLGdDQUFnQztRQUNsQyxPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxzQkFBc0IsQ0FBQztJQUNuRSxDQUFDO0lBRUQsWUFDbUIseUJBQW1ELEVBQ25ELDZCQUEyRDtRQUQzRCw4QkFBeUIsR0FBekIseUJBQXlCLENBQTBCO1FBQ25ELGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBOEI7UUEvQnJFLDhCQUF5QixHQUM5QixJQUFJLENBQUMseUJBQXlCLENBQUMsbUJBQW1CLENBQUM7UUFFOUMsa0NBQTZCLEdBQ2xDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxtQkFBbUIsQ0FBQztRQUVsRCxpQkFBWSxHQUNqQixhQUFhLENBQUM7WUFDZCxJQUFJLENBQUMseUJBQXlCLENBQUMsWUFBWTtZQUMzQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsWUFBWTtTQUNoRCxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUscUJBQXFCLENBQTZCLEVBQUUsRUFBRTtZQUNyRixNQUFNLHVCQUF1QixHQUF1QixpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2RixNQUFNLDJCQUEyQixHQUF1QixxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMvRixNQUFNLGlCQUFpQixHQUF1QjtnQkFDNUMsR0FBRyx1QkFBdUI7Z0JBQzFCLEdBQUcsMkJBQTJCO2FBQy9CLENBQUM7WUFFRixPQUFPLElBQUksV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQWFGLENBQUM7SUFFTCxhQUFhO1FBQ1gsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsNkJBQTZCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLDZCQUE2QixDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMseUJBQXlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFzRDtRQUN2RSxJQUFJLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELHNCQUFzQixDQUFDLE1BQXNEO1FBQzNFLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRSxDQUFDO21HQW5FVSxrQ0FBa0M7dUVBQWxDLGtDQUFrQyxXQUFsQyxrQ0FBa0M7O3VGQUFsQyxrQ0FBa0M7Y0FEOUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSU1lZGlhc3RyZWFtQ2FtZXJhU2VydmljZSB9IGZyb20gJy4vbWVkaWFzdHJlYW0tY2FtZXJhLXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1lZGlhc3RyZWFtQ2FtZXJhU2VydmljZSB9IGZyb20gJy4vbWVkaWFzdHJlYW0tY2FtZXJhLnNlcnZpY2UnO1xuaW1wb3J0IHsgSU1lZGlhc3RyZWFtTWljcm9waG9uZVNlcnZpY2UgfSBmcm9tICcuL21lZGlhc3RyZWFtLW1pY3JvcGhvbmUtc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWVkaWFzdHJlYW1NaWNyb3Bob25lU2VydmljZSB9IGZyb20gJy4vbWVkaWFzdHJlYW0tbWljcm9waG9uZS5zZXJ2aWNlJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTWVkaWFzdHJlYW1DYW1lcmFNaWNyb3Bob25lU2VydmljZVxuICBpbXBsZW1lbnRzIElNZWRpYXN0cmVhbUNhbWVyYVNlcnZpY2UsIElNZWRpYXN0cmVhbU1pY3JvcGhvbmVTZXJ2aWNlIHtcblxuICByZWFkb25seSBjdXJyZW50Q2FtZXJhTWVkaWFEZXZpY2UkOiBPYnNlcnZhYmxlPE1lZGlhRGV2aWNlSW5mbz5cbiAgICA9IHRoaXMuX21lZGlhc3RyZWFtQ2FtZXJhU2VydmljZS5jdXJyZW50TWVkaWFEZXZpY2UkO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRNaWNyb3Bob25lTWVkaWFEZXZpY2UkOiBPYnNlcnZhYmxlPE1lZGlhRGV2aWNlSW5mbz5cbiAgICA9IHRoaXMuX21lZGlhc3RyZWFtTWljcm9waG9uZVNlcnZpY2UuY3VycmVudE1lZGlhRGV2aWNlJDtcblxuICByZWFkb25seSBtZWRpYXN0cmVhbSQ6IE9ic2VydmFibGU8TWVkaWFTdHJlYW0+XG4gICAgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuX21lZGlhc3RyZWFtQ2FtZXJhU2VydmljZS5tZWRpYXN0cmVhbSQsXG4gICAgICB0aGlzLl9tZWRpYXN0cmVhbU1pY3JvcGhvbmVTZXJ2aWNlLm1lZGlhc3RyZWFtJFxuICAgIF0pLnBpcGUobWFwKChbbWVkaWFzdHJlYW1DYW1lcmEsIG1lZGlhc3RyZWFtTWljcm9waG9uZV06IFtNZWRpYVN0cmVhbSwgTWVkaWFTdHJlYW1dKSA9PiB7XG4gICAgICBjb25zdCBtZWRpYXN0cmVhbUNhbWVyYVRyYWNrczogTWVkaWFTdHJlYW1UcmFja1tdID0gbWVkaWFzdHJlYW1DYW1lcmEuZ2V0VmlkZW9UcmFja3MoKTtcbiAgICAgIGNvbnN0IG1lZGlhc3RyZWFtTWljcm9waG9uZVRyYWNrczogTWVkaWFTdHJlYW1UcmFja1tdID0gbWVkaWFzdHJlYW1NaWNyb3Bob25lLmdldEF1ZGlvVHJhY2tzKCk7XG4gICAgICBjb25zdCBtZWRpYXN0cmVhbVRyYWNrczogTWVkaWFTdHJlYW1UcmFja1tdID0gW1xuICAgICAgICAuLi5tZWRpYXN0cmVhbUNhbWVyYVRyYWNrcyxcbiAgICAgICAgLi4ubWVkaWFzdHJlYW1NaWNyb3Bob25lVHJhY2tzXG4gICAgICBdO1xuXG4gICAgICByZXR1cm4gbmV3IE1lZGlhU3RyZWFtKG1lZGlhc3RyZWFtVHJhY2tzKTtcbiAgICB9KSk7XG5cbiAgZ2V0IG1lZGlhc3RyZWFtQ2FtZXJhQ29uc3RyYWludHMoKTogYm9vbGVhbiB8IE1lZGlhVHJhY2tDb25zdHJhaW50cyB7XG4gICAgcmV0dXJuIHRoaXMuX21lZGlhc3RyZWFtQ2FtZXJhU2VydmljZS5tZWRpYXN0cmVhbUNvbnN0cmFpbnRzO1xuICB9XG5cbiAgZ2V0IG1lZGlhc3RyZWFtTWljcm9waG9uZUNvbnN0cmFpbnRzKCk6IGJvb2xlYW4gfCBNZWRpYVRyYWNrQ29uc3RyYWludHMge1xuICAgIHJldHVybiB0aGlzLl9tZWRpYXN0cmVhbU1pY3JvcGhvbmVTZXJ2aWNlLm1lZGlhc3RyZWFtQ29uc3RyYWludHM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXN0cmVhbUNhbWVyYVNlcnZpY2U6IE1lZGlhc3RyZWFtQ2FtZXJhU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXN0cmVhbU1pY3JvcGhvbmVTZXJ2aWNlOiBNZWRpYXN0cmVhbU1pY3JvcGhvbmVTZXJ2aWNlXG4gICkgeyB9XG5cbiAgZGlzYWJsZUNhbWVyYSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXN0cmVhbUNhbWVyYVNlcnZpY2UuZGlzYWJsZUNhbWVyYSgpO1xuICB9XG5cbiAgZGlzYWJsZU1pY3JvcGhvbmUoKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWFzdHJlYW1NaWNyb3Bob25lU2VydmljZS5kaXNhYmxlTWljcm9waG9uZSgpO1xuICB9XG5cbiAgZW5hYmxlQ2FtZXJhKCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhc3RyZWFtQ2FtZXJhU2VydmljZS5lbmFibGVDYW1lcmEoKTtcbiAgfVxuXG4gIGVuYWJsZU1pY3JvcGhvbmUoKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWFzdHJlYW1NaWNyb3Bob25lU2VydmljZS5lbmFibGVNaWNyb3Bob25lKCk7XG4gIH1cblxuICB0b2dnbGVDYW1lcmEoKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWFzdHJlYW1DYW1lcmFTZXJ2aWNlLnRvZ2dsZUNhbWVyYSgpO1xuICB9XG5cbiAgdG9nZ2xlTWljcm9waG9uZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXN0cmVhbU1pY3JvcGhvbmVTZXJ2aWNlLnRvZ2dsZU1pY3JvcGhvbmUoKTtcbiAgfVxuXG4gIHVwZGF0ZUNhbWVyYURldmljZShkZXZpY2U6IE1lZGlhRGV2aWNlSW5mbyAmIFJlY29yZDwna2luZCcsICd2aWRlb2lucHV0Jz4pOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXN0cmVhbUNhbWVyYVNlcnZpY2UudXBkYXRlQ2FtZXJhRGV2aWNlKGRldmljZSk7XG4gIH1cblxuICB1cGRhdGVNaWNyb3Bob25lRGV2aWNlKGRldmljZTogTWVkaWFEZXZpY2VJbmZvICYgUmVjb3JkPCdraW5kJywgJ2F1ZGlvaW5wdXQnPik6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhc3RyZWFtTWljcm9waG9uZVNlcnZpY2UudXBkYXRlTWljcm9waG9uZURldmljZShkZXZpY2UpO1xuICB9XG5cbn1cbiJdfQ==