Google chrome webrtc视频聊天后Chrome打包应用程序崩溃

Google chrome webrtc视频聊天后Chrome打包应用程序崩溃,google-chrome,webrtc,google-chrome-app,Google Chrome,Webrtc,Google Chrome App,我正在使用JavaScript IceLink库()实现webrtc视频聊天。应用程序在视频聊天后有时会崩溃。Chrome日志显示了下一个问题: [240:1520:0819/141151:VERBOSE1:webrtcsession.cc(1016)]设置音频播放音量:不存在音频频道 void WebRtcSession::SetAudioPlayoutVolume(uint32 ssrc, double volume) { ASSERT(signaling_thread()->Is

我正在使用JavaScript IceLink库()实现webrtc视频聊天。应用程序在视频聊天后有时会崩溃。Chrome日志显示了下一个问题: [240:1520:0819/141151:VERBOSE1:webrtcsession.cc(1016)]设置音频播放音量:不存在音频频道

void WebRtcSession::SetAudioPlayoutVolume(uint32 ssrc, double volume) {
  ASSERT(signaling_thread()->IsCurrent());
  ASSERT(volume >= 0 && volume <= 10);
  if (!voice_channel_) {
    LOG(LS_ERROR) << "SetAudioPlayoutVolume: No audio channel exists.";
    return;
  }

  if (!voice_channel_->SetOutputScaling(ssrc, volume, volume))
    ASSERT(false);
}
void WebRtcSession::SetAudioPlayoutVolume(uint32 ssrc,双卷){
断言(signaling_thread()->IsCurrent());
ASSERT(volume>=0&&volume崩溃是否为“预期行为”是一个有趣的问题

语义上,一个
assert(condition)
类语句意味着

除非
条件
为真,否则有些事情是非常非常错误的

显然,Chrome开发者赞同这一理念——如果你不能从故障状态中有意义地恢复,你应该尽快终止。在这方面,这是“预期”的行为


同样,如果断言被触发,这意味着程序中出现错误。如果这是预期状态,则不会出现崩溃,而是有意义的反应。因此,您遇到的是Chrome中的错误,而不是“预期”行为。即使您正在使用的库中存在故障,用户也不应触发崩溃


您应该使用最新的Chrome版本(/builds)测试您的应用程序。如果错误仍然存在-这是一个明显的错误。如果错误没有在金丝雀中重现,这是一个已修复的错误,您所能做的就是等待下一个Chrome版本将其修复。

错误的代码段:行号与此崩溃不符,您应该查看。谢谢。我已经修复了它。失败的断言永远不会发生预期行为。它们旨在将某些类别的意外行为转化为明确禁止的行为。对于开发人员来说,这意味着用户的错误报告从神秘的(“我的火箭飞船爆炸了”)变成了非常明确的描述(“火箭的控制模块没有发射,而是说‘推力永远不能超过10级’,然后它就停在发射台上”)。用控制台输出文件提交一个bug,Chromium开发者会修复它。如果你提交了bug报告,请添加一个链接到bug报告。