我尝试在我的 Angular 应用程序中使用里程碑中的 javascript 库。我正在尝试从 javascript 示例中进行调整,请参阅 https://github.com/milestonesys/mipsdkmobile-web上的 application.js
首先我连接到服务器:
XPMobileSDK.Connect(params, this.successConnectCallback.bind(this), this.failedConnectCallback.bind(this));
然后我登录:
XPMobileSDK.Login(params, this.successLoginCallback.bind(this), this.failedLoginCallback.bind(this));
然后我加载所有相机:
XPMobileSDK.getAllViews(this.successLoadAllViewsCallback.bind(this), this.errorLoadAllViewsCallback.bind(this));
所有这些似乎都正常工作。我必须.bind(this)
在回调中使用,以便上下文不会中断并且回调方法也会被执行。
现在我想启动视频流时遇到问题。
我调用 requestStream 并返回一个连接对象:
XPMobileSDK.library.Connection.RequestStream(params, this.requestStreamCallback.bind(this), this.requestStreamErrorCallback.bind(this));
在示例中,我向它添加了一个观察者并打开连接:
requestStreamCallback(videoConnection): void {
this.videoConnection = videoConnection;
const videoConnectionObserver = {
videoConnectionReceivedFrame: (frame) => this.videoConnectionReceivedFrame(frame)
};
videoConnection.addObserver(videoConnectionObserver);
videoConnection.open();
}
但该videoConnectionReceivedFrame(frame)
方法永远不会被调用。问题是,出了什么问题?是否因为上下文被破坏而没有调用该方法?javascriptsample 运行没有问题。
在 javascript 以及 angularapp 中,我在控制台中没有收到任何错误消息,只有正常消息:服务器已准备好视频 ID xyz
有谁知道我如何才能最好地找出问题所在?