首页 > 其他分享 >使用JS的input框实现音频文件的上传与播放功能

使用JS的input框实现音频文件的上传与播放功能

时间:2024-08-06 10:40:45浏览次数:16  
标签:控件 音频 JS 音频文件 input 播放 上传 audioPlayer

在网页中实现音频文件的上传和播放功能,可以通过HTML的<input>元素和JavaScript来完成。下面是一个简单的示例,展示了如何使用HTML和JavaScript实现这个功能:

HTML部分

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>音频上传与播放</title>
</head>
<body>
    <!-- 音频文件上传输入框 -->
    <input type="file" id="audioFile" accept="audio/*" />
    <!-- 音频播放控件 -->
    <audio id="audioPlayer" controls style="display: none;"></audio>

    <script src="app.js"></script>
</body>
</html>

JavaScript部分 (app.js)

document.getElementById('audioFile').addEventListener('change', function(event) {
    var file = event.target.files[0]; // 获取选择的文件
    var audioPlayer = document.getElementById('audioPlayer'); // 获取音频播放控件

    if (file) {
        // 检查文件类型是否为音频
        if (file.type.match('audio.*')) {
            // 将文件URL设置为音频播放控件的src属性
            audioPlayer.src = URL.createObjectURL(file);
            // 显示音频播放控件
            audioPlayer.style.display = 'block';
        } else {
            alert('请选择音频文件!');
        }
    }
});

// 监听音频播放控件的播放事件
document.getElementById('audioPlayer').addEventListener('play', function() {
    console.log('音频开始播放');
});

// 监听音频播放控件的结束事件
document.getElementById('audioPlayer').addEventListener('ended', function() {
    console.log('音频播放结束');
});

这个示例中,我们首先在HTML中创建了一个<input>元素用于上传音频文件,并且限制了接受的文件类型为音频文件。同时,我们添加了一个<audio>元素用于播放音频,初始时不显示。

在JavaScript中,我们为<input>元素添加了一个change事件监听器,当用户选择了文件后,我们检查文件类型,如果是音频文件,就将其URL设置为<audio>元素的src属性,并显示播放控件。同时,我们还为<audio>元素添加了playended事件监听器,用于监听音频的播放和结束事件。

请注意,这个示例仅用于演示基本的音频上传和播放功能,实际应用中可能需要更多的错误处理和功能扩展。

标签:控件,音频,JS,音频文件,input,播放,上传,audioPlayer
From: https://www.cnblogs.com/suducn/p/18344674

相关文章

  • Js函数柯里化
    //该函数就是接受不了多个参数//functionadd(x,y){//returnx+y;//}//console.log(add(1,2));//3//console.log(add(5,7));//12//接下来我们要将其进行柯里化//functionadd(x){//returnfunction(y){//returnx+y;//}......
  • Node.js安装配置(Windows系统)
    一、Node.js简单说就是运行在服务端的JavaScript二、安装Node.js步骤:1、首先找到Windows下的安装包(.msi)       建议安装Node.js v4.4.3(长期支持版本)  ^_^-------本安装教程以v5.2.0为例   Node.js安装包及源码下载地址为:https://no......
  • RSA非对称加密,前端JS加密,后端PHP解密
    RSA公钥/私钥在线生成:http://web.chacuo.net/netrsakeypair通过以上网址生成公钥/私钥对,私钥格式这里选择【PKCS#1】,如:公钥:-----BEGINPUBLICKEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDN3El4yr2maFvDo5PKIzkkiitJZEOTLNINH0RD0PL5Lob+YzbRJO6DX27SRuHcdlK7mFtkQvooW......
  • js、php实现前后端数据的base64编码和解码
    客户要求密码必须加密后再传送。javascript代码的加密函数:<scriptlanguage='javascript'>functionutf16to8(str){varout,i,len,c;out="";len=str.length;for(i=0;i<len;i++){c=str.charCodeAt(i);if(......
  • 一个基础的js,html示例程序
    需求背景:一个html,一个js脚本。要求html里面提供若干按钮。第1个按钮,点击之后,触发js里面的add函数,第2个按钮点击之后触发js里面的del函数。第3个按钮,点击之后,在按钮右侧,显示当前时间,每点击一次刷新下一次。还有,在每个函数调用里面,函数开通打印当前时间戳(精确到毫秒),函......
  • JS历理 文本高度自适应
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><metaname="renderer"content="webkit"><metahttp-equiv="X-UA-Compatible"content="IE=edge,chrome=1">......
  • 如何理解js的异步
    js是一门单线程的语言,这是因为他运行在浏览器的渲染主线程中,而渲染主线程只有一个,渲染主线程担任着诸多的工作,渲染页面、执行js、css、计时器等等都在其中运行。如果使用同步的方式,就很有可能会导致主线程堵塞,从而导致消息队列中的其它任务无法进行执行,这样一来,一方面会导致......
  • JSON parse error: Cannot deserialize instance of `java.lang.Long` out of START_O
    这个问题的实际原因就是:    后端id(Long类型)用的雪花算法生成主键id    后端生成id位:1820397662671867904    前端查询id的结果为:1820397662671868000产生的原因:    后端生成为19位,前端接受并展示,使用的类型是number类型是16位   ......
  • 从JS到Vue
    JavaScript-Vue JS引入方式基础语法输出语句 变量数据类型运算符函数对象ArrayStringJSONBOMWindowLocationDOM获取元素案例 事件事件绑定常见事件案例Vue快速入门指令v-bind和v-modelv-onv-if与v-showv-for案例生命周期 JS引入方式......
  • Android Camera close异常导致app的input ANR案例分析
    1.背景在日常的项目开发过程中,经常会收到用户或者测试同仁报过来的ANR(ApplicationNotResponse)的问题,本文结合作者的日常工作中遇到的典型案例,分享ANR的分析过程。ANR(‌ApplicationNotResponding)‌主要分为以下几种类型:‌Inputdispatchingtimedout:‌当输入事件(......