【发布时间】:2019-03-23 16:19:22
【问题描述】:
我在 C# 项目中将 cef.redist.x86.3.3497.1840 与 CefSharp 一起使用。我有一组播放 mp3 音频的 HTML 页面,它们在 Chrome 中运行良好,但是当我尝试使用 CEF/CefSharp 加载它们时,视觉效果还可以,但 CEF/CefSharp 给了我信息
"Uncaught RangeError: Maximum call stack size exceeded"。
这发生在我什至尝试播放音频之前(顺便说一句,在这种情况下不会播放),即使我可以加载单个 .mp3 文件并使用 CEF 提供的 HTML5 gizmo 播放它们。
在 Chrome 中使用这些页面时,我从来没有遇到过任何问题。
CEF/CefSharp 堆栈发生了什么?
我可以告诉它使用更大的堆栈吗?
我需要自己用更大的堆栈重建它吗?
CefSharp.MinimalExample.WinForms 的 64 位发布和调试版本都会产生相同的堆栈溢出消息。
【问题讨论】:
-
如果存在无限递归,通常会发生该异常,这可能是由于错误。如果是这样,增加堆栈大小只会改变到达那里需要多长时间。它必须设置得非常低才能在正常操作中引起问题(20 或更少)。
-
它是否在 64 位版本中重现?您可以使用github.com/cefsharp/CefSharp.MinimalExample 进行测试
-
@Christopher:如果是无限递归,Chrome 不也会发生这种情况吗?或者,也许您指的是 CEF 中的错误,而不是我的 JS?
-
@M.Robinson:每个浏览器都有不同的代码来处理每种格式。每个浏览器处理轻微损坏/不正确格式的方式不同。仅仅因为它将 CEF/CefSharp 的某些部分放入无限递归中,并不意味着它对 Chrome 也有同样的作用。这就是为什么我们使用不同的浏览器来测试东西。以及为什么我们必须使用不同的浏览器来测试东西。
标签: c# html stack mp3 cefsharp