nativescript-opentok-arth
Version:
Integrates OpenTok for NativeScript.
172 lines • 6.61 kB
JavaScript
"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