首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >自定义音频标签

自定义音频标签
EN

Stack Overflow用户
提问于 2012-01-14 23:21:40
回答 2查看 751关注 0票数 0

我正在尝试在HTML5中自定义音频标签。使用控件很容易,但是有没有一种方法可以显示和自定义音轨和音量控制器的进度条?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-15 08:47:31

下面是一个使用css样式元素的javascript控制的音频播放器的示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!doctype html>
<html lang="en">
    <head>
       <style>
            html, body {padding:50px;}
            * {margin:0px;padding:0px;}
            #audioWrapper {position:relative;display:inline-block;}
            .audioPlayer {position:absolute;left:0px;bottom:0px;
                 display: block;height:48px;width:400px;}
            #playPauseButton {position: absolute;top: 13px;left: 10px;
                 display:inline;width: 18px;height: 22px;
                 background: url(/images/player.png) no-repeat -20px -2px;
                 cursor: pointer;}
            #playPauseButton.playing {background-position:0px -2px;}
            #playPauseButton:active {top:10px;}
            #timeRemaining {position:absolute;top:17px;right:5px;font-size:11px;
                 font-weight:bold;color:#fff;}
            #timeLine {position: absolute;top: 19px;left: 50px;right: 50px;
                 height: 6px;padding: 2px;border-radius: 5px;background: #546374;}
           #slideHandle {position: absolute;top: -6px;left: 0;width: 20px;
                height: 20px;margin-left: -10px;
                background: url(/images/player.png) no-repeat -39px -3px;
                cursor: pointer;}
           .audioPlayerBackground {height:400px;width:400px;}
        </style>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
        <script type="text/javascript" src="/js/jquery-ui-1.8.17.custom.min.js"></script>
        <script type="text/javascript">
            function setupAudio(){
                var userSetSliderPosition = false;
                var audioSliderCreated = false;

                if(!!document.createElement('audio').canPlayType) {
                    var audioElemStr = '<audio><source src="/sound/Mozart_-_Bassoon_Concerto_in_Bb_major_-_Allegro.ogg" type="audio/ogg"></source></audio>';
                    $(audioElemStr).insertAfter(".audioPlayer #timeRemaining");

                    audioPlayer = $('.audioPlayer audio').get(0);
                    slideHandle = $('.audioPlayer #slideHandle');
                    timeRemainingElem = $('.audioPlayer #timeRemaining');

                    $("#playPauseButton").click(function() {    
                        if (audioPlayer.paused) { audioPlayer.play(); }
                        else { audioPlayer.pause(); }    
                    });

                    $(audioPlayer).bind('play',function() {
                        $("#playPauseButton").addClass('playing');  
                      }).bind('pause ended', function() {
                        $("#playPauseButton").removeClass('playing');   
                    });  

                    $(audioPlayer).bind('timeupdate', function() {
                        var audioPlayerDuration = audioPlayer.duration;

                        if (!userSetSliderPosition){
                            var audioPlayerCurrentTime = audioPlayer.currentTime;
                            var audioPlayerRemainingTime  = parseInt(audioPlayerDuration - audioPlayerCurrentTime);
                            var slideHandlePercentComplete = (audioPlayerCurrentTime / audioPlayerDuration) * 100;
                            var minutes = parseInt(audioPlayerRemainingTime/60);
                            var seconds = parseInt(audioPlayerRemainingTime%60);

                            slideHandle.css({left: slideHandlePercentComplete + '%'}); 
                            timeRemainingElem.text(minutes + ':' + (seconds < 10 ? ('0' + seconds) : seconds));
                        }

                        if (!audioSliderCreated) {
                            audioSliderCreated = true;
                            $('.audioPlayer #timeLine').slider({
                                max: audioPlayerDuration,
                                step: 0.01,
                                animate: "slow",         
                                slide: function() {            
                                    userSetSliderPosition = true;
                                },
                                stop:function(e,ui) {
                                    userSetSliderPosition = false;        
                                    audioPlayer.currentTime = ui.value;
                                }
                            });
                        }
                    });
                }
            }
        </script>
    </head>
    <body onload="setupAudio();">
        <div id="audioWrapper">
            <img class="audioPlayerBackground" alt="" src="/images/spaceJunk.png" />
            <div class="audioPlayer">
                <div id="playPauseButton"></div>
                <div id="timeLine">
                    <div id="slideHandle" class ="ui-slider-handle"></div>
                </div>
                <div id="timeRemaining"></div>
                <!--audio and source tags will be inserted here, if the browser supports them-->
            </div>
        </div>
    </body>
</html>

您可以在这里看到它的一个运行示例:http://www.vdstudios.net/tutorials/html/stylableAudioPlayer.html

票数 1
EN

Stack Overflow用户

发布于 2012-01-14 23:42:50

我建议在后台播放音频,通过JavaScript使用您自己的定制界面来控制它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8866223

复制
相关文章
【HTML5】HTML5 多媒体标签 ① ( audio 音频标签 | 音频标签常见属性值设置 | 音频标签默认代码设置 | 音频标签设置多种类型音频文件 )
传统 HTML 开发中 , 如果想要向网页中嵌入音频和视频 , 需要 使用 Flash 浏览器插件才能实现 ;
韩曙亮
2023/04/24
5.9K0
【HTML5】HTML5 多媒体标签 ① ( audio 音频标签 | 音频标签常见属性值设置 | 音频标签默认代码设置 | 音频标签设置多种类型音频文件 )
音频打标签工具
代码在:https://github.com/vell001/audio-annotator
vell001
2018/09/06
3K1
音频打标签工具
html视频标签属性_html音频标签
一、基本语法 代码如下: embed src=url 说明:embed可以用来插入各种多媒体,格式可以是 Midi、Wav、AIFF、AU、MP3等等,Netscape及新版的IE 都支持。url为音频或视频文件及其路径,可以是相对路径或绝对路径。 示例: 代码如下:
全栈程序员站长
2022/09/21
8.6K0
audio标签播放音频
H5页面播放音乐其实很简单,只需要用<audio>这个标签就行十分方便。 路径选在音乐所在位置就行了。 <audio id="bgMusic" src="js/2.mp3" autoplay preload loop="loop"></audio> 关于点击按钮音乐开启/停止播放的效果做了个简单的例子 <a class="play" id="audioBtn" style="cursor:pointer;" οnclick="autoPlay()"></a> <audio id="bgMusic" src
黄啊码
2020/05/29
4.6K0
不用 Audio 标签实现音频播放
通常想要播放音频第一思路是写一个 audio 标签,实际上单纯 JS 不插入标签也是可以实现的。这种方式只能是 audio video 则没有提供此类 api。
上山打老虎了
2022/06/15
2.2K0
【Android RTMP】音频数据采集编码 ( AAC 音频格式解析 | FLV 音频数据标签解析 | AAC 音频数据标签头 | 音频解码配置信息 )
① ADIF 格式 : 音频数据交换格式 ( Audio Data Interchange Format ) , 只有一份音频解码信息 , 存储在文件开头 , 这种格式适合存储音频文件 , 节省空间 , 但是必须从开始播放才可以 , 从中间位置无法播放 ;
韩曙亮
2023/03/27
3K0
【Android RTMP】音频数据采集编码  ( AAC 音频格式解析 | FLV 音频数据标签解析 | AAC 音频数据标签头 | 音频解码配置信息 )
HTML 学习笔记——插入音频、视频标签
audio标签用来向页面中引入一个外部的音频文件。音视频文件引入时,默认情况下不允许用户自己控制播放按钮。
颜颜yan_
2022/12/01
2.8K0
H5-视频和音频标签
学习h5,我们先从它的标签学起,学习标签的时候,我们主要了解它的属性,方法,以及事件,了解了这些基本上就会知道如何使用了。今天主要了解两个表签video以及audio,关于这两个标签其实基本是类似的。 video相比audio多了两个属性:width和height,顾名思义这里是设置video的大小的。 video标签属性: autoplay=”autoplay” 设置为自动播放。 controls=”controls” 向用户显示控件,比如播放按钮。 loop=”loop” 当媒介文件完成播放后再次开始播放。 preload=”load” 是否在页面加载完成后加载视频,”auto“-页面加载完后加载整个视频,”meta”-当页面加载后只载入元数据,”none”-页面加载后不载入视频。 src=”url” 视频地址,相对地址或者是绝对地址。 例子:
kdyonly
2023/03/03
4880
自定义短标签
在markdown文件中可以使用video标签,来完成视频的内嵌,但是hugo无法将该标签渲染成为正常的h5的video标签
caoayu
2020/09/23
1.1K0
JSP自定义标签
1. 标签语言特点 <开始标签 属性="属性值">标签体</结束标签>    空标签    <br/><hr/>    <开始标签></结束标签>    <开始标签/>  2. 自定义标签的开发及使用步骤(浏览器使用:google/firefox) 2.1 创建一个标签助手类(继承BodyTagSupport)       标签属性必须与助手类的属性对应、且要提供对应get/set方法 rtexprvalue   2.2 创建标签库描述文件(tld),添加自定义标签的配置    
用户10196776
2022/11/22
1.4K0
JSP自定义标签
自定义JSP[if,foreach,数据,select]标签
第四步:使用自定义jsp标签(在同一个页面,放在文章的最后,名字叫index.jsp)
天蝎座的程序媛
2022/11/18
3.1K0
自定义JSP[if,foreach,数据,select]标签
Java自定义标签
下面就拿2.0规范,格式化时间功能实例举个栗子: 1.创建标签库类 (继承SimpleTagSupport,实现doTag()即可)
Mshu
2018/10/31
1.1K0
自定义标签(TagSupport )
定义最简单的标签 自定义标签采用Default Adapter模式(缺省适配模式)
全栈程序员站长
2022/09/06
5980
自定义标签(TagSupport )
FreeMarker自定义标签
第一种:编码添加自定义标签 步骤一:添加自定义解析器 创建一个类继承 FreeMarkerConfigurer 类.重写afterPropertiesSet方法
試毅-思伟
2018/09/06
1.5K0
Java ---自定义标签
Single
2018/01/04
1.5K0
Java ---自定义标签
Kotlin 自定义 标签viewgroup
一般在java语言中,constructor直接在继承viewgroup后会报错,然后根据自定义快捷键,默认为alt+enter【博主是用的eclipse 的keymap所以采用的 ctrl+/】就提示出来让你选择了。
stormKid
2018/09/12
1.3K0
Kotlin 自定义 标签viewgroup
修改脚底自定义标签
找到themes/butterfly/source/css/_global/function.styl文件,任意位置添加代码
匿名用户的日记
2021/12/14
5140
freemarker自定义标签解析
用户9131103
2023/08/23
1530
freemarker自定义标签解析
Vue2处理音频和视频标签和class标签判断
1.要处理音频问题是: 问题: 点击播放音乐了,音乐也正在放,然后又点了视频,视频播放了,视频的音频也播放了,但是前面点的音乐仍然也在播放,没有停止
蚊子.
2023/08/10
2910
Vue2处理音频和视频标签和class标签判断
Android 自定义标签 ViewLayout
自定义viewLayout实现标签View,UI的效果图如下: 如图,我们要自己实现带描边的,带花括号的,带三角形,带对勾的这样一个layout ,并且对勾和中间的虚线我们都要用最基础的API绘制出
非著名程序员
2018/02/02
1.3K0
Android 自定义标签 ViewLayout

相似问题

自定义音频标签位置

32

自定义音频标签的css

211

Html 5音频标签自定义控件?

48

音频标签:音频标签和相同吗?

20

Wordpress音频标签不工作自定义字段

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文