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