|
@@ -117,15 +117,27 @@ var AudioLevels = (function(my) {
|
117
|
117
|
|
118
|
118
|
var audioLevelCanvasOrig = $('#' + videoSpanId + '>canvas').get(0);
|
119
|
119
|
|
120
|
|
- audioLevelCanvasCache[resourceJid]
|
121
|
|
- = CanvasUtil.cloneCanvas(audioLevelCanvasOrig);
|
|
120
|
+ /*
|
|
121
|
+ * FIXME Testing has shown that audioLevelCanvasOrig may not exist.
|
|
122
|
+ * In such a case, the method CanvasUtil.cloneCanvas may throw an
|
|
123
|
+ * error. Since audio levels are frequently updated, the errors have
|
|
124
|
+ * been observed to pile into the console, strain the CPU.
|
|
125
|
+ */
|
|
126
|
+ if (audioLevelCanvasOrig)
|
|
127
|
+ {
|
|
128
|
+ audioLevelCanvasCache[resourceJid]
|
|
129
|
+ = CanvasUtil.cloneCanvas(audioLevelCanvasOrig);
|
|
130
|
+ }
|
122
|
131
|
}
|
123
|
132
|
|
124
|
133
|
var canvas = audioLevelCanvasCache[resourceJid];
|
125
|
134
|
|
|
135
|
+ if (!canvas)
|
|
136
|
+ return;
|
|
137
|
+
|
126
|
138
|
var drawContext = canvas.getContext('2d');
|
127
|
139
|
|
128
|
|
- drawContext.clearRect (0, 0, canvas.width, canvas.height);
|
|
140
|
+ drawContext.clearRect(0, 0, canvas.width, canvas.height);
|
129
|
141
|
|
130
|
142
|
var shadowLevel = getShadowLevel(audioLevel);
|
131
|
143
|
|
|
@@ -190,4 +202,4 @@ var AudioLevels = (function(my) {
|
190
|
202
|
|
191
|
203
|
return my;
|
192
|
204
|
|
193
|
|
-})(AudioLevels || {});
|
|
205
|
+})(AudioLevels || {});
|