UNPKG

nativescript-opentok

Version:
161 lines 6.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var observable_1 = require("data/observable"); var session_1 = require("./session"); var view_1 = require("tns-core-modules/ui/core/view"); var StreamListener = com.opentok.android.SubscriberKit.StreamListener; var SubscriberListener = com.opentok.android.SubscriberKit.SubscriberListener; var BaseVideoRenderer = com.opentok.android.BaseVideoRenderer; var utils = require("utils/utils"); var renderStyle = new view_1.CssProperty({ name: 'renderStyle', cssName: 'render-style', defaultValue: 'fill', valueConverter: function (v) { return String(v); } }); var TNSOTSubscriber = (function (_super) { __extends(TNSOTSubscriber, _super); function TNSOTSubscriber() { var _this = _super.call(this) || this; _this._events = observable_1.fromObject({}); return _this; } Object.defineProperty(TNSOTSubscriber.prototype, "android", { get: function () { return this.nativeView; }, enumerable: true, configurable: true }); Object.defineProperty(TNSOTSubscriber.prototype, "subscriber", { get: function () { return this._subscriber; }, enumerable: true, configurable: true }); TNSOTSubscriber.prototype.createNativeView = function () { return new android.widget.LinearLayout(utils.ad.getApplicationContext()); }; TNSOTSubscriber.prototype.subscribe = function (session, stream) { var that = new WeakRef(this); this._subscriber = new com.opentok.android.Subscriber(utils.ad.getApplicationContext(), stream); this.renderStyle = this._renderStyle; this._subscriber.setSubscriberListener(new com.opentok.android.SubscriberKit.SubscriberListener({ owner: that.get(), onConnected: function (subscriber) { if (this.owner._events) { this.owner._events.notify({ eventName: 'subscriberDidConnectToStream', object: observable_1.fromObject({ subscriber: subscriber }) }); } }, onDisconnected: function (subscriber) { if (this.owner._events) { this.owner._events.notify({ eventName: 'subscriberDidDisconnect', object: observable_1.fromObject({ subscriber: subscriber }) }); } }, onError: function (subscriber, error) { if (this.owner._events) { this.owner._events.notify({ eventName: 'didFailWithError', object: observable_1.fromObject({ subscriber: subscriber, error: error }) }); } }, })); this._subscriber.setStreamListener(new com.opentok.android.SubscriberKit.StreamListener({ owner: that.get(), onDisconnected: function (subscriber) { if (this.owner._events) { this.owner._events.notify({ eventName: 'didDisconnectFromStream', object: observable_1.fromObject({ subscriber: subscriber }) }); } }, onReconnected: function (subscriber) { if (this.owner._events) { this.owner._events.notify({ eventName: 'didReconnectToStream', object: observable_1.fromObject({ subscriber: subscriber }) }); } } })); var sub = this._subscriber.getView(); this.nativeView.addView(sub); if (session instanceof session_1.TNSOTSession) { session.session.subscribe(this._subscriber); } else { session.subscribe(this._subscriber); } }; TNSOTSubscriber.prototype.toggleVideo = function () { var _isEnabled = this._subscriber.getSubscribeToVideo(); if (_isEnabled) { this.setVideoActive(false); } else { this.setVideoActive(true); } }; TNSOTSubscriber.prototype.setVideoActive = function (state) { this._subscriber.setSubscribeToVideo(state); }; TNSOTSubscriber.prototype.toggleAudio = function () { var _isEnabled = this._subscriber.getSubscribeToAudio(); if (_isEnabled) { this.setAudioActive(false); } else { this.setAudioActive(true); } }; TNSOTSubscriber.prototype.setAudioActive = function (state) { this._subscriber.setSubscribeToAudio(state); }; Object.defineProperty(TNSOTSubscriber.prototype, "events", { get: function () { return this._events; }, enumerable: true, configurable: true }); TNSOTSubscriber.prototype[renderStyle.setNative] = function (value) { this._renderStyle = value; if (this._subscriber) { switch (value) { case 'fit': this._subscriber.getRenderer().setStyle(com.opentok.android.BaseVideoRenderer.STYLE_VIDEO_SCALE, com.opentok.android.BaseVideoRenderer.STYLE_VIDEO_FIT); break; case 'scale': this._subscriber.getRenderer().setStyle(com.opentok.android.BaseVideoRenderer.STYLE_VIDEO_SCALE, com.opentok.android.BaseVideoRenderer.STYLE_VIDEO_SCALE); break; default: this._subscriber.getRenderer().setStyle(com.opentok.android.BaseVideoRenderer.STYLE_VIDEO_SCALE, com.opentok.android.BaseVideoRenderer.STYLE_VIDEO_FILL); break; } } }; return TNSOTSubscriber; }(view_1.View)); exports.TNSOTSubscriber = TNSOTSubscriber; renderStyle.register(view_1.Style); //# sourceMappingURL=subscriber.js.map