UNPKG

nativescript-opentok-arth

Version:
172 lines 6.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var observable_1 = require("data/observable"); var content_view_1 = require("ui/content-view"); var session_1 = require("./session"); 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 TNSOTSubscriber = (function (_super) { __extends(TNSOTSubscriber, _super); function TNSOTSubscriber() { var _this = _super.call(this) || this; _this._events = new observable_1.Observable(); return _this; } Object.defineProperty(TNSOTSubscriber.prototype, "android", { get: function () { return this._android; }, enumerable: true, configurable: true }); Object.defineProperty(TNSOTSubscriber.prototype, "_nativeView", { get: function () { return this._android; }, enumerable: true, configurable: true }); Object.defineProperty(TNSOTSubscriber.prototype, "subscriber", { get: function () { return this._subscriber; }, enumerable: true, configurable: true }); TNSOTSubscriber.prototype.resetSubscriberView = function () { var sub = this._subscriber.getView(); this._android.removeView(sub); }; TNSOTSubscriber.prototype._createUI = function () { this._android = 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._subscriber.getRenderer().setStyle(com.opentok.android.BaseVideoRenderer.STYLE_VIDEO_SCALE, this.render_style); 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: new observable_1.Observable({ subscriber: subscriber }) }); } }, onDisconnected: function (subscriber) { if (this.owner._events) { this.owner._events.notify({ eventName: 'subscriberDidDisconnect', object: new observable_1.Observable({ subscriber: subscriber }) }); } }, onError: function (subscriber, error) { if (this.owner._events) { this.owner._events.notify({ eventName: 'didFailWithError', object: new observable_1.Observable({ 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: new observable_1.Observable({ subscriber: subscriber }) }); } }, onReconnected: function (subscriber) { if (this.owner._events) { this.owner._events.notify({ eventName: 'didReconnectToStream', object: new observable_1.Observable({ subscriber: subscriber }) }); } } })); var sub = this._subscriber.getView(); this._android.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 }); Object.defineProperty(TNSOTSubscriber.prototype, "render_style", { get: function () { return this._render_style; }, set: function (value) { switch (value) { case 'fit': this._render_style = com.opentok.android.BaseVideoRenderer.STYLE_VIDEO_FIT; break; case 'fill': this._render_style = com.opentok.android.BaseVideoRenderer.STYLE_VIDEO_FILL; break; case 'scale': this._render_style = com.opentok.android.BaseVideoRenderer.STYLE_VIDEO_SCALE; break; default: this._render_style = com.opentok.android.BaseVideoRenderer.STYLE_VIDEO_FILL; break; } }, enumerable: true, configurable: true }); return TNSOTSubscriber; }(content_view_1.ContentView)); exports.TNSOTSubscriber = TNSOTSubscriber; //# sourceMappingURL=subscriber.js.map