opentok.js和Vuejs问题

时间:2018-07-13 13:43:24

标签: vue.js opentok tokbox

我正在将 openjs 集成到我的 Vuejs 项目中。但我此刻陷入困境。下面的代码非常简单,却给我以下错误。

代码

<template>
</template>
<script>
  export default {
    // eslint-disable-line no-unused-vars
    name: 'Video-call',
    created () {
    }
  }
  var session = OT.initSession('apikey', 'sessionid')
  var publisher = OT.initPublisher()
  session.connect('token', function (err) {
    console.log(err)
  })
  console.log(session)
  console.log(publisher)
  session.publish(publisher)
  session.on('streamCreated', function (event) {
    session.subscribe(event.stream)
  })
</script>

异常详细信息

uncaught TypeError: Cannot convert undefined or null to object
    at slice (<anonymous>)
    at nodeListToArray (opentok.js:19284)
    at selectorToElementArray (opentok.js:19327)
    at new ElementCollection (opentok.js:19360)
    at module.exports (opentok.js:19255)
    at Object.browserAjax.request (opentok.js:20174)
    at Object.browserAjax.post (opentok.js:20217)
    at opentok.js:42190
    at loop (opentok.js:42373)
    at QueueRunner.run (opentok.js:42377)

我找不到我在做错什么。

2 个答案:

答案 0 :(得分:0)

尝试: `

import OT from 'YOUR PATH'
export default {
    name: 'Video-call',
    created () {
var session = OT.initSession('apikey', 'sessionid')
  var publisher = OT.initPublisher()
  session.connect('token', function (err) {
    console.log(err)
  })
  console.log(session)
  console.log(publisher)
  session.publish(publisher)
  session.on('streamCreated', function (event) {
    session.subscribe(event.stream)
  })
    }
  }

`

答案 1 :(得分:0)

当我运行该代码(不使用vuejs)时,在发布之前,我收到有关需要连接的错误。您需要将session.publish调用移到session.connect回调内部。

您收到的其他TypeError似乎是将对象而不是元素ID传递给OT.initPublisher,session.publish或session.subscribe。这些方法中的每一个都有一个参数,该参数应该是HTMLNode或HTMLNode的ID。如果传入例如,则会得到该错误。而是一个对象,并且内部opentok尝试执行document.querySelectorAll(object)并返回空值。