【问题标题】:Twilio 'twilio-video-app-android' github app Video Calling app crashes on joining a roomTwilio 'twilio-video-app-android' github 应用程序视频通话应用程序在加入房间时崩溃
【发布时间】:2022-06-13 18:12:35
【问题描述】:
我是 twilio 的新手,我正在开发一个用于视频通话的 andorid 应用程序,我从 github 的 twilio 'twilio-video-app-android' 开始
但是当我点击加入房间时应用程序崩溃了
“在空对象引用上的布尔 com.twilio.video.LocalAudioTrack.isReleased()'”
无法理解为什么它会显示这个异常向您求助,谢谢!
【问题讨论】:
标签:
android
twilio
twilio-click-to-call
twilio-video
videocall
【解决方案1】:
我在 video-quickstart-android 示例中看到了同样的致命异常。我注意到:
- 如果我终止应用,从 IDE 再次运行,尝试加入房间,它会崩溃。
- 但如果我卸载、重新安装然后运行,则不会崩溃。
这是崩溃的位置:
room = connect(this, accessToken, roomListener) {
roomName(roomName)
/*
* Add local audio track to connect options to share with participants.
*/
audioTracks(listOf(localAudioTrack))
/*
* Add local video track to connect options to share with participants.
*/
videoTracks(listOf(localVideoTrack))
...
但问题不存在,问题在于轨道的初始化。这些仅在成功授予权限后才实例化,因此如果应用程序已经具有未到达代码路径的所需权限,则不会初始化轨道,并且连接代码会爆炸。将单个代码语句添加到代码中,如下所示在(较小的)快速启动应用程序中为我修复了它:
/*
* Check camera and microphone permissions. Also, request for bluetooth
* permissions for enablement of bluetooth audio routing.
*/
if (!checkPermissionForCameraAndMicrophone()) {
Timber.i("Requesting camera and mic permissions")
requestPermissionForCameraMicrophoneAndBluetooth()
} else {
createAudioAndVideoTracks() // <------ **** ADD THIS STATEMENT ****
audioSwitch.start { audioDevices, audioDevice -> updateAudioDeviceIcon(audioDevice) }
}
@philnash 我希望快速入门示例能够在急需时更新。它没有使用 AndroidX,依赖于已弃用的 API(例如 PreferenceManager),代码中充斥着 lint 警告,它针对的是 2019 年的 Android 版本等。当样本没有保持最新时,它会产生不必要的痛苦和成本来集成 Twilio Video .