当前位置:首页 > 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
  • 直接存储音频文件供后续使用

完整解决方案

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

  • RecordRTC
  • Wavesurfer.js
  • Web Audio API

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

php 实现 录音

标签: php
分享给朋友:

相关文章

php实现文件下载

php实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开:…

git php实现

git php实现

Git 与 PHP 的集成实现 使用 PHP 执行 Git 命令 通过 PHP 的 exec()、shell_exec() 或 passthru() 函数可以直接调用 Git 命令,适用于服务器端操作…

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Ratc…

php购物车实现

php购物车实现

PHP购物车实现方法 使用PHP实现购物车功能可以通过多种方式完成,以下是几种常见的实现方法: Session存储购物车数据 利用PHP的$_SESSION超全局变量存储购物车数据是最简单的方法。…

php 实现接口

php 实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不包含具体的实现。类可以实现(implement)接口,并必须实现接口中定义的所有方法。 定义接口 接口通…

php 实现购物车

php 实现购物车

PHP 实现购物车功能 购物车功能是电子商务网站的核心部分,可以通过 PHP 和 Session 或数据库来实现。以下是两种常见的实现方式: 使用 Session 存储购物车数据 Sessi…