MuZ*_*Zak 4 javascript html5-audio
我找不到如何播放用户刚刚通过输入选择的音频文件。我有以下输入:
<input type='file' id="audio-input" class="audio-input" name="audio" accept=".mp3, .wav"/>
Run Code Online (Sandbox Code Playgroud)
我想在用户选择音频文件时显示该文件,以便他可以播放它。它会是这样的:
('#audio-input-0').change( function () {
let audio =
"<audio controls>" +
" <source id='audioFile' type='audio/mpeg'>" +
" Your browser does not support the audio element." +
"</audio>";
$('body').append(audio);
$('#audioFile').attr('src', $(this).val());
});
Run Code Online (Sandbox Code Playgroud)
我希望你明白我想要做什么,我真的不知道如何解释它(也许这就是为什么我在其他主题上找不到任何答案)。
.val()实际上并没有您放入的文件input。你需要使用它的files属性。
请考虑阅读这篇 MDN 文章,它将演示如何使用文件:使用来自 Web 应用程序的文件以及您需要使用的文档URL.createObjectURL(),以便为您<audio>提供src.
function changeHandler({
target
}) {
// Make sure we have files to use
if (!target.files.length) return;
// Create a blob that we can use as an src for our audio element
const urlObj = URL.createObjectURL(target.files[0]);
// Create an audio element
const audio = document.createElement("audio");
// Clean up the URL Object after we are done with it
audio.addEventListener("load", () => {
URL.revokeObjectURL(urlObj);
});
// Append the audio element
document.body.appendChild(audio);
// Allow us to control the audio
audio.controls = "true";
// Set the src and start loading the audio from the file
audio.src = urlObj;
}
document
.getElementById("audio-upload")
.addEventListener("change", changeHandler);Run Code Online (Sandbox Code Playgroud)
<div><label for="audio-upload">Upload an audio file:</label></div>
<div><input id="audio-upload" type="file" /></div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6330 次 |
| 最近记录: |