问题描述
向其他开发者问好
我正在处理一个项目,我必须在该项目中显示两个用户之间的功能性视频通话。作为参考,我一直在关注此视频 https://www.youtube.com/watch?v=v9ngriCV0J0 其中对两个用户之间建立视频通话进行了分步说明。
但是,唯一的问题是视频有一个 Firebase 后端。因此,每当呼叫者创建具有发送者和接收者 ID 的呼叫模型时,接收者会立即收到相同的数据并建立呼叫。然而,我正在使用 Node/Express 后端(用于更新获取数据的手动 API 调用),这使得一旦调用方将其发送到后端,就很难从接收方端接收所需的调用数据。此外,一直监听获取调用数据的效率很低。
如果您能帮助我找到一种可行的方法,以便在呼叫者在后端创建所需的呼叫数据以从不同的设备建立视频呼叫时,接收方可以立即获取所需的呼叫数据,我将非常感谢你们所有人。
这是我的代码 https://pastebin.com/AurJnG27
/***pubspec.yaml dependencies***/
dependencies:
Flutter:
sdk: Flutter
http: ^0.12.0+2
provider: ^4.3.3
socket_io_client: ^0.9.9
permission_handler: ^3.0.0
agora_rtc_engine: ^1.0.8
/***pubspec.yaml dependencies***/
如果需要我方提供更多信息,请告诉我。对于代码即兴创作的任何反馈(如果您愿意)也非常感谢。
解决方法
您收到该错误是因为您可能使用了不正确或过期的令牌。首先,我会建议迁移到最新版本的 Agora SDK,然后构建您的应用程序。
现在,如果您只是测试平台,那么从您的 Agora 仪表板中,您可以继续生成一个新的 App ID 并选择将禁用令牌的测试模式。因此,在您的 joinChannel()
方法中,您可以传递 null
作为令牌值。
但如果您的应用程序已上线或已投入生产,请继续并从您的 Agora 仪表板中选择安全模式。然后,您必须从部署的服务器生成令牌服务器,您可以阅读有关它的更多信息 here。
现在,来到 Firebase 部分。您实际上可以通过使用 Agora RTM SDK 使这个过程变得更简单。它允许您发送消息,通过它您可以发送有关呼叫详细信息的对等消息,从而在拨打电话时参考它。您可以查看此博客,其中展示了如何使用 RTM SDK 执行相同操作:https://www.agora.io/en/blog/building-your-own-audio-streaming-application-using-the-agora-flutter-sdk/
如果您有兴趣,可以查看给出 here 的示例代码,它将帮助您设置正确的视频通话应用程序。
我还会推荐您加入 Agora Slack Channel,在那里您可以从其他 Agora 开发者那里获得帮助。