feat: 添加“数字时钟”显示模式
This commit is contained in:
@@ -18,6 +18,10 @@ window.addEventListener('DOMContentLoaded', () => {
|
|||||||
isDefault: false,
|
isDefault: false,
|
||||||
label: '音频可视化 - 2',
|
label: '音频可视化 - 2',
|
||||||
},
|
},
|
||||||
|
digitalClock: {
|
||||||
|
isDefault: false,
|
||||||
|
label: '数字时钟',
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
/** 分辨率配置选项 */
|
/** 分辨率配置选项 */
|
||||||
@@ -680,6 +684,9 @@ window.addEventListener('DOMContentLoaded', () => {
|
|||||||
case 'data':
|
case 'data':
|
||||||
await renderDataText();
|
await renderDataText();
|
||||||
break;
|
break;
|
||||||
|
case 'digitalClock':
|
||||||
|
await renderDigitalClock();
|
||||||
|
break;
|
||||||
case 'spectrum':
|
case 'spectrum':
|
||||||
await renderAudioSpectrum();
|
await renderAudioSpectrum();
|
||||||
break;
|
break;
|
||||||
@@ -882,6 +889,34 @@ window.addEventListener('DOMContentLoaded', () => {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 渲染数字时钟内容 */
|
||||||
|
async function renderDigitalClock() {
|
||||||
|
|
||||||
|
// 清空画布
|
||||||
|
ctx.fillStyle = '#000000';
|
||||||
|
ctx.fillRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT);
|
||||||
|
|
||||||
|
// 获取当前时间
|
||||||
|
let date = new Date();
|
||||||
|
let hours = String(date.getHours()).padStart(2, '0');
|
||||||
|
let minutes = String(date.getMinutes()).padStart(2, '0');
|
||||||
|
let seconds = String(date.getSeconds()).padStart(2, '0');
|
||||||
|
|
||||||
|
// 计算字体大小,确保不超出画布
|
||||||
|
let padding = 10;
|
||||||
|
let fontSize = Math.floor((CANVAS_HEIGHT - padding * 2) / 3);
|
||||||
|
let timeFont = `${fontSize}px monospace`;
|
||||||
|
let timeText = `${hours}:${minutes}:${seconds}`;
|
||||||
|
|
||||||
|
// 绘制时间
|
||||||
|
ctx.font = timeFont;
|
||||||
|
ctx.textAlign = 'center';
|
||||||
|
ctx.textBaseline = 'middle';
|
||||||
|
ctx.fillStyle = '#FFFFFF';
|
||||||
|
ctx.fillText(timeText, CANVAS_WIDTH / 2, CANVAS_HEIGHT / 2);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// 初始化下拉选项
|
// 初始化下拉选项
|
||||||
(function () {
|
(function () {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user