我在我的Vuejs项目中集成了openjs。但我现在卡住了。下面的代码非常简单,给我以下错误。
码
<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)
我找不到我做错了什么。
试试这个:`
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)
})
}
}
`
当我运行该代码(没有vuejs)时,我会在发布之前收到有关需要连接的错误。您需要在session.connect回调中移动session.publish调用。
你得到的其他TypeError看起来像是传入一个对象而不是一个元素id,无论是OT.initPublisher,session.publish还是session.subscribe。这些方法中的每一个都有一个参数,该参数应该是HTMLNode或HTMLNode的id。如果你传入例如,你会得到那个错误。而不是内部opentok尝试执行document.querySelectorAll(object)并返回null。