>  기사  >  백엔드 개발  >  PHP에서 오디오 업로드 및 처리를 구현하는 방법

PHP에서 오디오 업로드 및 처리를 구현하는 방법

WBOY
WBOY원래의
2023-05-20 20:40:552032검색

오디오 파일의 인기로 인해 점점 더 많은 웹사이트에서 오디오 업로드 및 처리 기능을 지원해야 합니다. 오디오 업로드 및 처리는 현대 웹사이트의 필수적인 부분입니다. 이 기사에서는 PHP에서 오디오 업로드 및 처리를 구현하는 방법을 소개합니다.

1. 오디오 업로드

  1. 업로드 컨트롤 사용

HTML에서는 입력 태그의 유형 속성을 파일로 사용하여 파일 업로드를 위한 컨트롤을 만들 수 있습니다.

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="audioFile" accept=".mp3,.wav">
    <input type="submit" value="上传">
</form>

그 중 action 속성은 양식 제출 주소이고, enctype 속성은 양식 데이터 유형을 "multipart/form-data"로 설정해야 하며, 그렇지 않으면 파일을 업로드할 수 없습니다.

  1. PHP는 업로드된 파일을 처리합니다.

PHP는 업로드된 파일을 처리하기 위해 $_FILES 배열을 제공합니다. 이 배열에는 업로드된 파일의 모든 정보가 포함되어 있습니다. 업로드된 파일을 처리할 때에는 먼저 파일이 성공적으로 업로드되었는지 확인한 후 처리해야 합니다.

if($_FILES["audioFile"]["error"] > 0) {
    echo "上传错误:" . $_FILES["audioFile"]["error"];
} else {
    // 文件上传成功,进行文件处理
}

그 중 $_FILES"audioFile"은 업로드된 파일의 오류 코드입니다. 0보다 크면 업로드가 실패합니다.

2. 오디오 처리

  1. 파일 정보 얻기

업로드된 파일 정보를 얻는 것은 파일 처리의 첫 번째 단계입니다. PHP의 getID3 라이브러리는 파일 정보를 얻는 편리한 방법을 제공합니다. 다음 코드를 사용하여 오디오 파일에 대한 기본 정보를 얻을 수 있습니다.

require_once('getID3-master/getid3/getid3.php');
$getID3 = new getID3;
$fileInfo = $getID3->analyze($_FILES["audioFile"]["tmp_name"]);

그 중 getid3.php는 getID3 라이브러리의 메인 파일이므로 import해야 합니다. $getID3은 getid3 클래스의 인스턴스이고 $fileInfo에는 오디오 파일에 대한 자세한 정보가 포함되어 있습니다.

  1. Transcoding

크로스 플랫폼 호환성을 지원하려면 오디오 파일을 업로드할 때 트랜스코딩이 필요합니다. 트랜스코딩을 위해 PHP의 내장 라이브러리를 사용할 수 있습니다.

$fileName = $_FILES["audioFile"]["name"];
$ext = pathinfo($fileName, PATHINFO_EXTENSION); // 获取文件扩展名
$newFileName = uniqid() . "." . $ext; // 生成新文件名
$destPath = "uploads/" . $newFileName;
move_uploaded_file($_FILES["audioFile"]["tmp_name"], $destPath); // 移动文件到目标路径
  1. 압축

업로드한 오디오 파일의 크기가 큰 경우 웹페이지 로딩 속도를 높이기 위해 압축해야 합니다. 압축은 PHP의 오디오 변환 라이브러리를 사용하여 수행할 수 있습니다.

require_once('audio-convert-master/AudioConvert.php');
use PHPAudioConvertAudioConvert;

$acr = AudioConvert::create();
$acr->inputFile($destPath);
$acr->outputBitrate("32k");
$acr->outputFormat("mp3");
$acr->outputFile("output.mp3");

그 중 오디오 변환 라이브러리는 오디오 파일을 다양한 형식과 비트 전송률로 변환할 수 있는 오픈 소스 PHP 오디오 처리 라이브러리입니다.

  1. 오디오 데이터 가져오기

오디오 파일을 처리할 때 오디오 파일에서 타임스탬프, 채널 수, 샘플링 속도, 샘플링 비트 심도 등과 같은 데이터를 추출해야 하는 경우가 있습니다. 이 데이터는 getID3 라이브러리를 사용하여 얻을 수 있습니다.

$timeLength = $fileInfo['playtime_seconds']; // 音频时长(秒)
$channels = $fileInfo['audio']['channels']; // 音频声道数(单声道/立体声/环绕声等)
$sampleRate = $fileInfo['audio']['sample_rate']; // 音频采样率(比特数/秒)
$bitsPerSample = $fileInfo['audio']['bits_per_sample']; // 音频采样位深,采样每个点的比特数
  1. 오디오 처리 관련 애플리케이션

실제 애플리케이션에는 오디오 파일 처리에 대한 요구 사항이 많이 있습니다. 예:

  • 오디오 파일에 대한 잘라내기, 연결, 합성 및 기타 편집 작업.
  • 오디오 파일을 분석하여 음악 비트, 피치, 되감기 및 일반 사운드 등을 식별합니다.
  • 배열 사운드, 메트로폴 및 지연 등과 같은 오디오 파일 재생 효과를 얻으세요.

위 애플리케이션의 경우 audiowaveform, audiogen 등과 같은 오픈 소스 PHP 오디오 처리 라이브러리를 사용하여 해당 기능을 구현할 수 있습니다. 이러한 라이브러리에는 참조할 수 있는 자세한 문서와 샘플 코드가 있습니다.

결론

이 글에서는 업로드 제어, 파일 처리 방법, 오디오 트랜스코딩, 오디오 데이터 압축 및 획득 등을 포함하여 PHP에서 오디오 업로드 및 처리를 구현하는 방법을 소개합니다. 이 기사를 읽으면서 독자들이 PHP 오디오 처리에 대한 관련 지식을 더 잘 이해하고 자신의 오디오 처리 요구 사항을 실현할 수 있기를 바랍니다.

위 내용은 PHP에서 오디오 업로드 및 처리를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.