ホーム > カテゴリ > HTML5・JavaScript >

音声ファイル(MP3/OGG/AAC/FLAC/WAV)の曲の時間とサンプリング周波数を取得する [decodeAudioData]

AudioContextの親クラスであるBaseAudioContext.decodeAudioData()を使用して、MP3/OGG/AAC/FLAC/WAVなどの音声ファイルから曲の再生時間、サンプリング周波数、チャンネル数を取得します。

※読み込める音声ファイルはブラウザに依存します。

ソースコード

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script>
var audioCtx;
var firstFlag = true;

function onDragOver(event){ 
  event.preventDefault(); 
} 
  
function onDrop(event){
  onAddFile(event);
  event.preventDefault(); 
}  

function onAddFile(event) {
  var files;
  var reader = new FileReader();
  
  if(event.target.files){
    files = event.target.files;
  }else{ 
    files = event.dataTransfer.files;   
  }    

  reader.onload = function (event) {

    if(firstFlag){
      audioCtx =  new AudioContext(); 
      firstFlag = false;     
    }    
    
    audioCtx.decodeAudioData(reader.result).then(function(source) {
      
      // 曲の秒数
      alert(source.duration + "秒\n"+
            "サンプリング周波数 : " + source.sampleRate + "\n" +
            "チャンネル数 : " + source.numberOfChannels);
      
      console.log(source);      
      
    }).catch(function(e){
      alert("It is a format not supported.\n"+e);
    });     
  };
  
  if (files[0]){    
    reader.readAsArrayBuffer(files[0]); 
    document.getElementById("inputfile").value = "";
  }
}      
</script>

</head>
<body ondrop="onDrop(event);" ondragover="onDragOver(event);">  
<p></p>
<table>
  <tr><th>Audio File</th><td>&nbsp;<input type="file" id="inputfile" onchange="onAddFile(event);"></td></tr>
</table>    
<p></p>    
</body>
</html> 





関連記事



公開日:2019年03月05日
記事NO:02733


この記事を書いた人

💻 ITスキル・経験
サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。

画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ
プチモンテ代表、アーティスト名:プチモンテ
🎵 音楽制作
BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は叙情詩、叙情的な楽曲が多い。楽曲制作は2023年12月中旬 ~

オリジナル曲を始めました✨

YouTubeで各楽曲を公開しています🌈
https://www.youtube.com/@petitmonte

【男性ボーカル】DA・KA・RA | 新たな明日が風と共に訪れる

【男性、女性ボーカル】時空を超越する先に | 時空と風の交響曲

【女性、男性ボーカル】絆 | 穏やかな心に奏でる旋律