0

我按照文档中提到的步骤进行操作。我有一个带有 React 的 Electron 应用程序。我之前使用 agora v3.6.0,一切正常。我想升级到不向后兼容但看起来很容易实现的 Agora v4。

发布本地曲目后,我收到以下错误。

AgoraRTC_N-production.js:637 Uncaught (in promise) TypeError: this.report.forEach is not a function
    at b.<anonymous> (AgoraRTC_N-production.js:637)
    at AgoraRTC_N-production.js:175
    at Object.next (AgoraRTC_N-production.js:176)
    at g (AgoraRTC_N-production.js:174)

我的项目中的代码片段:

const agoraAccessToken = await actions.auth.getAgoraAccessToken({ requestParams: {channel: props.config.channel}});
console.log(agoraAccessToken);


let uid = await AgoraClient.join(props.config.appId, props.config.channel, agoraAccessToken);
console.log(uid);

let audioTrack = await AgoraRTC.createMicrophoneAudioTrack();
let videoTrack = await AgoraRTC.createCameraVideoTrack();

await AgoraClient.publish([audioTrack, videoTrack]);
4

1 回答 1

0

如您所知,Agora 4.x SDK 不向后兼容。

差异不仅限于tracks. 3.x 和 4.x 不同的另一个方面是关于in-call stats,这可能会导致this.report.forEach错误,但这只是一个假设,直到您提供更多代码。

如果你使用 react,我建议你查看开源的Agora React项目,它封装了 Agora 4.x SDK 以遵循标准的 React 代码风格。

完整指南:使用 React Hooks 和 Agora 构建视频聊天应用

注意:我没有亲自创建这个项目,也没有编写本指南,但我推荐它们,因为它们是为了让 Agora 的 Web SDK 更容易与 React 一起使用而创建的。

于 2021-06-17T16:54:15.093 回答