Android Opentok上的Ionic 3 Angular 5 app crashers

问题描述 投票:0回答:1

我使用离子3角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);
     });
     }

    }
ionic3 opentok
1个回答
0
投票

TokBox Developer Evangelist在这里。

看起来您正在发布而不验证会话是否连接没有错误。最近在Cordova OpenTok Plugin中修复了错误,修复了session.connect方法的错误处理程序问题。您可以将Ionic代码修改为以下内容:

this.session = OT.initSession(apiKey, sessionId);
this.publisher = OT.initPublisher('publisher');
this.session.on({
  streamCreated: (event) => {
    this.session.subscribe(event.stream, 'subscriber');
  },
  streamDestroyed: (event) => {
    console.log(`Stream ${event.stream.name} ended because ${event.reason}`);
  },
 sessionConnected: event => {
    this.session.publish(publisher);
  },
});

this.session.connect(this.token, (error) => {
   if (error) {
      console.log('There was an error connecting');
   }
});

我还继续更新了OpenTok-Ionic-SamplesOpenTok-Cordova-Samples repos中的示例,这些示例反映了错误修复的示例代码更改。

© www.soinside.com 2019 - 2024. All rights reserved.