尝试开发一个录音界面

330 阅读2分钟

1. 录音界面效果

当用户点击"开始录音"按钮后,界面会立即响应:

  • 录音按钮变为红色高亮状态,显示"录音中..."文字
  • 停止录音按钮变为可用状态(蓝色)
  • 波形可视化区域开始显示动态的红色波形
  • 计时器开始从00:00计时
<!-- 录音状态下的按钮变化 -->
<button id="recordButton" class="recording" disabled>录音中...</button>
<button id="stopButton">停止录音</button>

2. 声音可视化效果

录音和播放时都会显示动态波形,采用两种不同配色方案:

  • 录音时:红色系渐变波形(#e74c3c到#c0392b)
  • 播放时:绿色系渐变波形(#2ecc71到#27ae60)
// 录音可视化配置
recording: {
    colors: {
        gradient: ['#e74c3c', '#c0392b', '#d35400'],
        fill: ['rgba(231, 76, 60, 0.4)', 'rgba(231, 76, 60, 0.05)']
    },
    amplitude: 3.5
}

// 播放可视化配置 
playback: {
    colors: {
        gradient: ['#2ecc71', '#27ae60', '#16a085'],
        fill: ['rgba(46, 204, 113, 0.4)', 'rgba(46, 204, 113, 0.05)']
    },
    amplitude: 2.8
}

3. 播放控制效果

播放录音时的界面交互:

  • 播放按钮变为不可用状态
  • 暂停按钮变为可用状态(橙色)
  • 波形变为绿色动态效果
  • 计时器显示播放进度
<!-- 播放状态下的按钮变化 -->
<button id="playButton" disabled>播放录音</button>
<button id="pauseButton">暂停播放</button>

4. 响应式布局效果

在不同设备尺寸下都能保持良好的显示效果:

  • 在手机上:按钮垂直排列,波形区域适当缩小
  • 在平板上:保持居中布局,适当调整间距
  • 在桌面上:最大宽度限制为600px,保持良好可视性
.container {
    width: 80%;
    max-width: 600px;
}

@media (max-width: 480px) {
    .controls {
        flex-direction: column;
    }
}

5. 动态波形细节

波形可视化采用了多种技术增强效果:

  1. 主波形:3px粗的渐变色彩线条
  2. 镜像波形:1.5px细的透明线条,增强立体感
  3. 填充区域:半透明渐变填充,增强视觉层次
  4. 动态流动:通过相位偏移创造自然流动效果
// 波形绘制细节
canvasCtx.lineWidth = 3; // 主波形线宽
canvasCtx.strokeStyle = gradient; // 主波形颜色

canvasCtx.lineWidth = 1.5; // 镜像波形线宽 
canvasCtx.globalAlpha = 0.3; // 镜像波形透明度

canvasCtx.fillStyle = fillGradient; // 填充区域颜色

这个应用通过精心设计的UI交互和视觉效果,为用户提供了直观、专业的录音和音频播放体验。

6. 效果展示

b3voy-2dl25.gif