ホームページ  >  記事  >  バックエンド開発  >  PHP でオーディオのアップロードと処理を実装する方法

PHP でオーディオのアップロードと処理を実装する方法

WBOY
WBOYオリジナル
2023-05-20 20:40:552096ブラウズ

オーディオ ファイルの人気に伴い、オーディオのアップロードと処理機能をサポートする必要がある Web サイトが増えています。音声のアップロードと処理は、最新の Web サイトに不可欠な部分です。この記事では、PHP で音声のアップロードと処理を実装する方法を紹介します。

1. 音声アップロード

  1. アップロード コントロールの使用

HTML では、input タグの type 属性を使用してファイルを作成できます。コントロールのアップロード ファイル。

<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 ライブラリのメイン ファイルであり、インポートする必要があります。 $getID3 は getid3 クラスのインスタンスであり、$fileInfo にはオーディオ ファイルに関する詳細情報が含まれます。

  1. トランスコーディング

クロスプラットフォーム互換性をサポートするには、オーディオ ファイルをアップロードするときにトランスコーディングが必要です。トランスコーディングには 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. 圧縮

アップロードされた音声ファイルのサイズが大きい場合、Web ページの読み込みを高速化するために圧縮する必要があります。圧縮は、PHP の audio-convert ライブラリを使用して実行できます。

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");

その中で、audio-convert ライブラリは、オーディオ ファイルをさまざまな形式やビット レートに変換できるオープン ソースの 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。