当前位置:首页 > PHP

php 实现 录音

2026-01-29 09:20:40PHP

PHP 实现录音功能

PHP 本身是服务器端语言,无法直接访问客户端的麦克风进行录音。需要通过前端技术(如 JavaScript)捕获音频,再通过 PHP 接收和处理音频数据。

前端录音实现

使用 JavaScript 的 MediaRecorder API 捕获音频:

navigator.mediaDevices.getUserMedia({ audio: true })
  .then(stream => {
    const mediaRecorder = new MediaRecorder(stream);
    const audioChunks = [];

    mediaRecorder.addEventListener("dataavailable", event => {
      audioChunks.push(event.data);
    });

    mediaRecorder.addEventListener("stop", () => {
      const audioBlob = new Blob(audioChunks, { type: "audio/wav" });
      uploadAudio(audioBlob);
    });

    mediaRecorder.start();
    setTimeout(() => mediaRecorder.stop(), 5000); // 录制5秒
  });

function uploadAudio(blob) {
  const formData = new FormData();
  formData.append("audio", blob, "recording.wav");

  fetch("upload.php", {
    method: "POST",
    body: formData
  });
}

PHP 接收音频文件

创建 upload.php 处理上传的音频文件:

<?php
if ($_FILES['audio']['error'] === UPLOAD_ERR_OK) {
    $tmpName = $_FILES['audio']['tmp_name'];
    $name = basename($_FILES['audio']['name']);
    move_uploaded_file($tmpName, "uploads/$name");
    echo "Audio uploaded successfully";
} else {
    echo "Upload failed with error code: " . $_FILES['audio']['error'];
}
?>

注意事项

浏览器录音需要 HTTPS 环境,大多数浏览器在非安全环境下会阻止麦克风访问。

用户必须明确授权麦克风访问权限,浏览器会显示权限请求对话框。

音频格式默认为浏览器决定的格式,常见有 audio/webmaudio/ogg。如需 WAV 格式,可能需要使用音频处理库进行转换。

服务器端音频处理

PHP 可以结合以下工具处理音频:

  • 使用 exec() 调用 FFmpeg 进行格式转换
  • 使用音频处理库如 PHP-FFMpeg
  • 直接存储音频文件供后续使用

完整解决方案

对于生产环境,建议考虑成熟的录音库如:

php 实现 录音

  • RecordRTC
  • Wavesurfer.js
  • Web Audio API

这些库提供更完善的录音控制、可视化等功能,可以与 PHP 后端配合使用。

标签: php
分享给朋友:

相关文章

php实现图片上传

php实现图片上传

实现图片上传的基本步骤 创建HTML表单用于文件上传,表单需设置enctype="multipart/form-data"属性,确保文件数据正确传输。 <form action="upload…

php实现上传

php实现上传

PHP 文件上传实现 HTML 表单设置 创建一个包含文件上传字段的 HTML 表单,确保表单的 enctype 属性设置为 multipart/form-data,这是文件上传必需的设置。 <…

php实现注册

php实现注册

注册功能实现步骤 数据库准备 创建用户表,包含字段如id、username、password、email等。示例SQL: CREATE TABLE users ( id INT AUTO_I…

php验证码的实现

php验证码的实现

PHP 验证码实现方法 使用 GD 库生成基础验证码 创建画布并生成随机字符串作为验证码内容: session_start(); $width = 120; $height = 40; $image…

php 实现文件下载

php 实现文件下载

实现文件下载的基本方法 使用 PHP 实现文件下载的核心是通过设置 HTTP 头部信息,强制浏览器将文件作为附件下载而非直接显示。以下是一个基础实现示例: $file_path = '/path/t…

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $p…