如何从 <audio> 播放器获取 audio.duration 并通过点击将其保存到 div?
How to get audio.duration from a <audio> player and save it to a div on a click?
我一直在寻找一种方法来获取远程托管的 MP3 文件的持续时间,我从另一个问题 (How can I get the html5 audio's duration time) 中找到了答案,现在我想看看我是否能做到工作。
这部分我挂了:
$(document).ready(function() {
var audio = $("#audio-1")[0];
$("#audio-1").on("loadedmetadata", function() {
alert(audio.duration);
});
});
该代码的作用是获取 MP3 文件的持续时间并将其显示在控制台中。当您单击一个按钮并将该数据保存到“”中时,我正在尝试获取 MP3 文件的持续时间。
到目前为止,这是我的代码:
$(document).ready(function() {
var audio = $("#audio-1")[0];
$("#click").on("click", function() {
$("#audio-1").on("loadedmetadata", function() {
$(".duration").data{(audio.duration)};
});
});
});
.duration {height:20px;border:1px solid #ccc}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<audio id="audio-1" src="https://media.acast.com/dth/weekinreviewfortheweekof6-21-21-dth/media.mp3" preload="metadata"></audio>
Duration:
<div class="duration"></div>
<button id="click">Click</button>
使用 .innerText
而不是 .data
。
此外,由于 .data
行中的大括号,您的代码会引发错误:
$(".duration").data{(audio.duration)};
如果您要使用 .data
调用,它应该有正则大括号:.data("duration", audio.duration)
$(document).ready(function() {
var audio = $("#audio-1")[0];
$("#click").on("click", function() {
$("#audio-1").on("loadedmetadata", function() {
$(".duration").innerText(audio.duration);
});
});
});
.duration {height:20px;border:1px solid #ccc}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<audio id="audio-1" src="https://media.acast.com/dth/weekinreviewfortheweekof6-21-21-dth/media.mp3" preload="metadata"></audio>
Duration:
<div class="duration"></div>
<button id="click">Click</button>
$(function(){
$('#btn').click(function() {
var audio = $("#audio-1")[0];
$("#duration").html(audio.duration);
});
});
<html>
<head>
<title>First Pen</title>
</head>
<body>
<div>
<div id="duration"></div>
<button id="btn">Click</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<audio id="audio-1" src="https://media.acast.com/dth/weekinreviewfortheweekof6-21-21-dth/media.mp3" preload="metadata"></audio>
</div>
</body>
</html>
我这样做了并且成功了。
我一直在寻找一种方法来获取远程托管的 MP3 文件的持续时间,我从另一个问题 (How can I get the html5 audio's duration time) 中找到了答案,现在我想看看我是否能做到工作。
这部分我挂了:
$(document).ready(function() {
var audio = $("#audio-1")[0];
$("#audio-1").on("loadedmetadata", function() {
alert(audio.duration);
});
});
该代码的作用是获取 MP3 文件的持续时间并将其显示在控制台中。当您单击一个按钮并将该数据保存到“”中时,我正在尝试获取 MP3 文件的持续时间。
到目前为止,这是我的代码:
$(document).ready(function() {
var audio = $("#audio-1")[0];
$("#click").on("click", function() {
$("#audio-1").on("loadedmetadata", function() {
$(".duration").data{(audio.duration)};
});
});
});
.duration {height:20px;border:1px solid #ccc}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<audio id="audio-1" src="https://media.acast.com/dth/weekinreviewfortheweekof6-21-21-dth/media.mp3" preload="metadata"></audio>
Duration:
<div class="duration"></div>
<button id="click">Click</button>
使用 .innerText
而不是 .data
。
此外,由于 .data
行中的大括号,您的代码会引发错误:
$(".duration").data{(audio.duration)};
如果您要使用 .data
调用,它应该有正则大括号:.data("duration", audio.duration)
$(document).ready(function() {
var audio = $("#audio-1")[0];
$("#click").on("click", function() {
$("#audio-1").on("loadedmetadata", function() {
$(".duration").innerText(audio.duration);
});
});
});
.duration {height:20px;border:1px solid #ccc}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<audio id="audio-1" src="https://media.acast.com/dth/weekinreviewfortheweekof6-21-21-dth/media.mp3" preload="metadata"></audio>
Duration:
<div class="duration"></div>
<button id="click">Click</button>
$(function(){
$('#btn').click(function() {
var audio = $("#audio-1")[0];
$("#duration").html(audio.duration);
});
});
<html>
<head>
<title>First Pen</title>
</head>
<body>
<div>
<div id="duration"></div>
<button id="btn">Click</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<audio id="audio-1" src="https://media.acast.com/dth/weekinreviewfortheweekof6-21-21-dth/media.mp3" preload="metadata"></audio>
</div>
</body>
</html>
我这样做了并且成功了。