オーディオ ファイルの人気に伴い、オーディオのアップロードと処理機能をサポートする必要がある Web サイトが増えています。音声のアップロードと処理は、最新の Web サイトに不可欠な部分です。この記事では、PHP で音声のアップロードと処理を実装する方法を紹介します。
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」に設定しないとアップロードできません。
PHP は、アップロードされたファイルを処理するための $_FILES 配列を提供します。この配列には、アップロードされたファイルのすべての情報が含まれています。アップロードされたファイルを処理するときは、まずファイルが正常にアップロードされたかどうかを確認してから処理する必要があります。
if($_FILES["audioFile"]["error"] > 0) { echo "上传错误:" . $_FILES["audioFile"]["error"]; } else { // 文件上传成功,进行文件处理 }
このうち、$_FILES"audioFile"はアップロードしたファイルのエラーコードで、0より大きい場合はアップロードに失敗します。
2. 音声処理
アップロードされたファイル情報の取得は、ファイル処理の最初のステップです。 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 にはオーディオ ファイルに関する詳細情報が含まれます。
クロスプラットフォーム互換性をサポートするには、オーディオ ファイルをアップロードするときにトランスコーディングが必要です。トランスコーディングには PHP の組み込みライブラリを使用できます。
$fileName = $_FILES["audioFile"]["name"]; $ext = pathinfo($fileName, PATHINFO_EXTENSION); // 获取文件扩展名 $newFileName = uniqid() . "." . $ext; // 生成新文件名 $destPath = "uploads/" . $newFileName; move_uploaded_file($_FILES["audioFile"]["tmp_name"], $destPath); // 移动文件到目标路径
アップロードされた音声ファイルのサイズが大きい場合、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 オーディオ処理ライブラリです。
オーディオ ファイルを処理するとき、タイムスタンプ、チャンネル数、サンプリング レート、サンプリングなどのデータをオーディオ ファイルから抽出する必要がある場合があります。ビット深度など。このデータは、getID3 ライブラリを使用して取得できます。
$timeLength = $fileInfo['playtime_seconds']; // 音频时长(秒) $channels = $fileInfo['audio']['channels']; // 音频声道数(单声道/立体声/环绕声等) $sampleRate = $fileInfo['audio']['sample_rate']; // 音频采样率(比特数/秒) $bitsPerSample = $fileInfo['audio']['bits_per_sample']; // 音频采样位深,采样每个点的比特数
実際のアプリケーションでは、オーディオ ファイルを処理するために多くの要件があります。例:
上記のアプリケーションの場合、audiowaveform、audiogen などのオープンソース PHP オーディオ処理ライブラリを使用して、対応する機能を実装できます。これらのライブラリには、参照用の詳細なドキュメントとサンプル コードが含まれています。
結論
この記事では、アップロード コントロールの使用、ファイル処理方法、オーディオのトランスコーディング、オーディオ データの圧縮と取得など、PHP でオーディオのアップロードと処理を実装する方法を紹介します。この記事を読むことで、読者が PHP オーディオ処理の関連知識をより深く理解し、独自のオーディオ処理のニーズを実現できることを願っています。
以上がPHP でオーディオのアップロードと処理を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。