【发布时间】:2019-02-19 12:19:45
【问题描述】:
我使用 ionic 3 angular 5 创建了一个混合应用程序。此应用程序使用 opentok 进行视频通话。我在我的 Mac 上为 opentok 安装了一个 python 服务器,它工作正常。不,我正在尝试通过混合应用程序连接到同一台服务器。我已经生成了一个会话 id 表单 opentok 网站。我还从同一个站点生成了一个发布者令牌并在应用程序中使用它。我能够看到两个流,但是一旦客户端的发布者被初始化,应用程序就会崩溃。
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
declare var OT:any;
declare var Cordova: any;
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
session: any;
publisher: any;
apiKey: any;
sessionId: string;
token: string;
constructor(public navCtrl: NavController) {
this.apiKey = '46271262';
this.sessionId = '1_MX40NjI3MTI2Mn5-
MTU1MDU2MTE3NDk4OX5RcmQzSmQ2Z2VzZnl4RmNXNEY5ckJQc0V-fg';
this.token =
'myTokenGoesHere';
}
startCall() {
this.session = OT.initSession(this.apiKey, this.sessionId);
this.session.on({
streamCreated: (event) => {
this.session.subscribe(event.stream, 'subscriber');
this.session.subscribe.subscribeToVideo = true
OT.updateViews();
},
streamDestroyed: (event) => {
console.log(`Stream ${event.stream.name} ended because
${event.reason}`);
OT.updateViews();
}
});
this.session.connect('myTokenGoeshere', () => {
this.publisher = OT.initPublisher('publisher');
alert("Publish Started")
this.session.publish(this.publisher);
});
}
}
【问题讨论】:
-
TokBox 开发者布道者在这里。当崩溃发生时,你能分享一下堆栈跟踪吗?这适用于 iOS 或 Android 应用程序吗?对于 iOS,请确保您已在 info.plist 文件中添加了麦克风和摄像头的权限。 Android 插件应该会为您处理权限,但以防万一,请确保已授予权限。
-
感谢您的回复。它在 Android 上崩溃了。
-
您好 Evangelist,我可以通过生成新令牌来解决崩溃问题。我尝试创建一个本机 IOS 应用程序并收到 code1500 错误。它与令牌有关。所以我生成了一个在 android 应用程序中使用它的新令牌,并且崩溃得到了解决。
-
现在我遇到了另一个问题,当我从混合应用程序创建 IOS 构建时,我可以看到从 python 服务器到应用程序的流,但看不到从 IOS 应用程序到 python 服务器的流。我再次认为这可能与令牌有关?我尝试生成一个新的令牌,但仍然面临同样的问题。