audioの総時間を取得しようとして少し詰まったのでメモしておきます。
サンプルコード
metaデータ読み込み前に取得しようとするとうまくいかないようです。
JavaScript
var audio = new Audio(); // audioの作成
audio.src = 'sound.mp3'; // 音声ファイルの指定
audio.load(); // audioの読み込み
console.log('meta読み込み前:', audio.duration); // 総時間の取得(meta読み込み前に取得すると失敗する)
audio.addEventListener('loadedmetadata',function(e) {
console.log(audio.duration); // 総時間の取得
});
loadedmetadataイベントを使ってmetaデータ読み込み後に総時間を取得すると、うまくいきました。
audioの総時間を取得するデモページ
コメントが承認されるまで時間がかかります。