当前位置:首页 > PHP

php实现录音

2026-01-30 03:29:10PHP

PHP 实现录音的基本方法

PHP 本身是服务器端语言,无法直接录制客户端音频。需要结合前端技术(如 JavaScript)和服务器端处理来实现完整的录音功能。

前端录音实现

使用 JavaScript 的 MediaRecorder API 可以捕获用户麦克风输入:

<button id="start">开始录音</button>
<button id="stop" disabled>停止录音</button>
<script>
let mediaRecorder;
let audioChunks = [];

document.getElementById('start').addEventListener('click', async () => {
    const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
    mediaRecorder = new MediaRecorder(stream);

    mediaRecorder.ondataavailable = event => {
        audioChunks.push(event.data);
    };

    mediaRecorder.start();
    document.getElementById('stop').disabled = false;
});

document.getElementById('stop').addEventListener('click', () => {
    mediaRecorder.stop();
    mediaRecorder.onstop = () => {
        const audioBlob = new Blob(audioChunks, { type: 'audio/wav' });
        uploadAudio(audioBlob);
    };
});

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

    fetch('upload.php', {
        method: 'POST',
        body: formData
    });
}
</script>

服务器端处理

创建 upload.php 文件接收并保存音频:

php实现录音

<?php
if (isset($_FILES['audio'])) {
    $targetDir = "uploads/";
    $targetFile = $targetDir . basename($_FILES["audio"]["name"]);

    if (move_uploaded_file($_FILES["audio"]["tmp_name"], $targetFile)) {
        echo "录音已保存";
    } else {
        echo "保存失败";
    }
}
?>

音频格式处理

默认录制的可能是 WebM 格式,如需 WAV 格式:

// 修改 MediaRecorder 初始化
mediaRecorder = new MediaRecorder(stream, { mimeType: 'audio/wav' });

安全注意事项

确保上传目录有正确权限:

php实现录音

chmod("uploads/", 0755);

验证文件类型:

$allowedTypes = ['audio/wav', 'audio/webm'];
if (!in_array($_FILES['audio']['type'], $allowedTypes)) {
    die("无效的音频格式");
}

扩展功能

添加录音时长限制:

// 设置60秒自动停止
setTimeout(() => {
    if (mediaRecorder.state === 'recording') {
        mediaRecorder.stop();
    }
}, 60000);

显示录音波形可以使用 Web Audio API 或第三方库如 Wavesurfer.js。

标签: php
分享给朋友:

相关文章

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE…

php实现mvc

php实现mvc

PHP 实现 MVC 架构 MVC(Model-View-Controller)是一种常用的软件设计模式,将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller…

php实现注册登录

php实现注册登录

PHP 注册功能实现 创建数据库表(以 MySQL 为例) CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, usern…

php 实现路由

php 实现路由

PHP 实现路由的方法 在 PHP 中实现路由功能可以通过多种方式完成,以下是几种常见的实现方法: 使用原生 PHP 实现简单路由 通过解析 URL 并匹配对应的处理逻辑,可以实现基本的路由功能。以…

php 实现https

php 实现https

在 PHP 中实现 HTTPS 确保 PHP 应用通过 HTTPS 协议安全传输数据,可以通过以下几种方式实现: 配置服务器强制 HTTPS 在 Web 服务器(如 Apache 或 Nginx)中…

php无法实现的

php无法实现的

PHP 的局限性 PHP 是一种广泛使用的服务器端脚本语言,主要用于 Web 开发。尽管功能强大,但在某些场景下存在局限性。 操作系统级开发 PHP 不适合编写操作系统内核或底层驱动程序。这类任务通…