@@ -16,10 +16,16 @@ const animateBars = (analyser, canvas, ctx, dataArray, bufferLength) => {
|
||||
const barWidth = Math.max(3, Math.floor(canvas.width / barCount)); // Thinner bars
|
||||
const step = Math.floor(bufferLength / barCount);
|
||||
|
||||
// Debug: Check if we're getting real data
|
||||
const hasAudioData = dataArray.some(value => value > 0);
|
||||
if (!hasAudioData) {
|
||||
// TV browser might not be getting real audio data, create fallback animation
|
||||
// More sophisticated detection for TV browsers
|
||||
const maxValue = Math.max(...dataArray);
|
||||
const averageLevel = dataArray.reduce((sum, value) => sum + value, 0) / dataArray.length;
|
||||
const activeValues = dataArray.filter(value => value > 5).length;
|
||||
|
||||
// TV browsers often return very low values or all zeros
|
||||
const hasRealAudioData = maxValue > 10 && averageLevel > 1 && activeValues > 10;
|
||||
|
||||
if (!hasRealAudioData) {
|
||||
// TV browser fallback animation
|
||||
const time = Date.now();
|
||||
for (let i = 0; i < barCount; i++) {
|
||||
const wave1 = Math.sin(time * 0.003 + i * 0.3) * 0.4;
|
||||
@@ -45,6 +51,7 @@ const animateBars = (analyser, canvas, ctx, dataArray, bufferLength) => {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Real audio data rendering for PC browsers
|
||||
let x = 0;
|
||||
|
||||
for (let i = 0; i < barCount; i++) {
|
||||
|
||||
Referencia en una nueva incidencia
Block a user