audio.addEventListener("loadedmetadata", function() { var title = audio.title; var artist = audio.artist; var album = audio.album; document.getElementById("song-title").innerHTML = title; document.getElementById("song-artist").innerHTML = artist; document.getElementById("song-album").innerHTML = album; });
时间: 2024-03-18 16:45:15 浏览: 26
这段代码是用来获取音频文件的元数据信息,并将其显示在网页上。其中,通过addEventListener()方法监听音频文件的"loadedmetadata"事件,一旦元数据信息加载完成,就会执行回调函数。在回调函数内部,使用audio对象的属性获取音频文件的标题、艺术家和专辑信息,然后将这些信息显示在网页上,通过getElementById()方法获取网页中的元素,并修改其innerHTML属性来显示相应的信息。
相关问题
function playMusic("D:/music/将进酒.mp3") { var audio = new Audio(D:\music\海底.mp3); audio.play(); } pauseBtn.onclick = function() { music.pause(); } volumeSlider.oninput = function() { music.volume = volumeSlider.value; } var cards = document.querySelectorAll(".card"); for (var i = 0; i < cards.length; i++) { cards[i].addEventListener("click", function() { alert("您点击了" + this.querySelector("h2").innerHTML); }); } };格式对吗
这是一个 JavaScript 函数,其中包含了一些对音乐播放器和卡片元素的交互行为的实现,但是代码存在一些语法错误和问题:
- 函数名后面的括号中应该是参数列表,而不是文件路径。
- 在创建 Audio 对象时,文件路径应该用字符串引号括起来。
- 在点击暂停按钮时,应该使用 pauseBtn 而不是 music 变量。
- 在音量滑块上进行输入时,应该设置音量控制的值,而不是获取音量控制的值。
- 在循环遍历卡片元素时,应该使用 let 关键字,而不是 var 关键字,以避免变量提升的问题。
下面是代码的修正版:
```
function playMusic(filePath) {
var audio = new Audio(filePath);
audio.play();
}
window.onload = function() {
alert("欢迎来到音乐主题页面!");
var music = document.getElementById("music");
var playBtn = document.getElementById("play-btn");
var pauseBtn = document.getElementById("pause-btn");
var volumeSlider = document.getElementById("volume-slider");
playBtn.onclick = function() {
playMusic("D:/music/将进酒.mp3");
};
pauseBtn.onclick = function() {
music.pause();
};
volumeSlider.oninput = function() {
music.volume = volumeSlider.value;
};
var cards = document.querySelectorAll(".card");
for (let i = 0; i < cards.length; i++) {
cards[i].addEventListener("click", function() {
alert("您点击了" + this.querySelector("h2").innerHTML);
});
}
};
```
这样,代码就可以正常运行了。
js 中 ios 获取 audio.duration为NaN
在 iOS 中,获取 audio 元素的 duration 属性可能会返回 NaN。这可能是因为 audio 元素尚未加载完全,或者音频文件的元数据中缺少所需的信息。
为了解决这个问题,您可以尝试使用以下方法:
1. 等待 audio 元素加载完成后再获取 duration 属性,可以通过监听 `loadedmetadata` 事件来实现:
```
var audio = document.getElementById('audio');
audio.addEventListener('loadedmetadata', function() {
console.log(audio.duration);
});
```
2. 如果音频文件的元数据中缺少 duration 信息,您可以使用第三方库来解析音频文件并获取 duration。例如,您可以使用 `wavefile` 库来解析 WAV 文件:
```
var xhr = new XMLHttpRequest();
xhr.open('GET', 'audio.wav', true);
xhr.responseType = 'arraybuffer';
xhr.onload = function() {
var wav = new WaveFile(xhr.response);
console.log(wav.getDuration());
};
xhr.send();
```
请注意,这需要您将音频文件转换为 WAV 格式。如果您仍然遇到问题,可以检查音频文件的元数据并确保其包含所需的信息。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)