亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

利用JavaScript實現(xiàn)點(diǎn)擊音頻實現(xiàn)播放功能

 更新時間:2025年06月14日 14:19:27   作者:妮在想什么  
這篇文章主要介紹了關(guān)于如何利用JavaScript實現(xiàn)點(diǎn)擊音頻實現(xiàn)播放功能,文中通過示例講解了使用HTML、CSS和JavaScript結(jié)合jQuery實現(xiàn)一個簡易音頻播放器,包含播放、暫停及倒計時功能,適用于學(xué)習(xí)平臺等場景,需要的朋友可以參考下

前言

今天通過 HTML、CSS 和 JavaScript 模擬一個簡易的音頻播放器。它使用了基本的音頻控制邏輯,并結(jié)合 jQuery 來管理用戶的交互。讓我們來詳細(xì)解讀這段代碼。

1. HTML 部分:音頻播放控件

首先,我們的 HTML 結(jié)構(gòu)非常簡單,它包含一個帶有播放按鈕和時間顯示的 <div> 元素。

<div class="audioDiv" id="playButton">
    <img src="./img/yuyin.png" alt="播放圖標(biāo)" />
    <p id="countdown">4:31</p>
    <p id="bofang">播放錄音</p>
</div>
  • <div class="audioDiv" id="playButton">: 這是外部容器,采用了 flex 布局,保證了內(nèi)容在水平方向上居中對齊,并且背景色是淺灰色。這個容器用來顯示音頻播放控件。

  • <img src="./img/yuyin.png" alt="播放圖標(biāo)" />: 這是播放按鈕,顯示一個播放圖標(biāo)。它會作為按鈕,用戶點(diǎn)擊它時會觸發(fā)音頻的播放。

  • <p id="countdown">4:31</p>: 用來顯示音頻剩余時間的倒計時。初始值為 4 分 31 秒,即音頻的總時長。

  • <p id="bofang">播放錄音</p>: 這是文本提示,表明這個按鈕的功能是播放錄音。

2. CSS 部分:樣式設(shè)置

CSS 主要負(fù)責(zé)設(shè)置播放器的外觀和布局。通過以下樣式,確保了播放器的基本功能和用戶體驗:

.audioDiv {
    display: flex;
    align-items: center;
    width: 204px;
    height: 29px;
    background-color: #a0a0a0;
    border-radius: 9px;
    padding: 10px;
    cursor: pointer;
}
  • display: flex 讓內(nèi)部元素(圖標(biāo)、倒計時和文本)水平排列并居中。
  • background-color: #a0a0a0 設(shè)置播放器背景色為灰色,給人簡潔的視覺效果。
  • border-radius: 9px 使播放器的邊緣呈圓角。

此外,按鈕的樣式(包括圖片大小、文本的顯示等)都確保了控件的清晰和簡潔。

3. JavaScript 部分:音頻控制

JavaScript 是實現(xiàn)音頻播放功能的核心部分。在這里,我們通過 jQuery 處理了音頻播放和倒計時的更新。以下是關(guān)鍵邏輯:

播放和暫停音頻:

  • 當(dāng)用戶點(diǎn)擊播放按鈕時,如果音頻尚未播放(audioStatus === true),我們會調(diào)用 audio.play() 開始播放音頻,同時啟動倒計時。
  • 如果音頻正在播放(audioStatus === false),則暫停音頻,并重置倒計時為初始狀態(tài)(4:31)。

倒計時更新:

function player() {
    let m = 4;
    let s = 31;
    times = setInterval(function() {
        if (s < 10) {
            $('#countdown').html(m + ':0' + s);
        } else {
            $('#countdown').html(m + ':' + s);
        }
        s--;
        if (s < 0) {
            s = 59;
            m--;
        }
    }, 1000);
}
  • 我們使用 setInterval 每秒更新倒計時。初始時設(shè)定倒計時為 4 分 31 秒,并逐秒減少。
  • 當(dāng)秒數(shù)小于 10 時,倒計時格式會是 4:09 這樣,而不是 4:9,確保時間格式一致。

播放結(jié)束后自動暫停:

setTimeout(function() {
    audio.currentTime = 0;
    audio.pause();
    $('#countdown').html('4:31');
    audioStatus = true;
}, 271000);
  • setTimeout 在音頻播放完畢后會將音頻暫停,并重置倒計時顯示為初始狀態(tài)。
     

4. 總結(jié):

這段代碼實現(xiàn)了一個基本的音頻播放器界面,并添加了自定義的倒計時功能。當(dāng)用戶點(diǎn)擊播放按鈕時,音頻將開始播放,同時倒計時更新。通過清晰簡潔的設(shè)計,用戶可以隨時了解音頻的播放進(jìn)度,并控制播放/暫停。這個小項目展示了如何使用 HTML、CSS 和 JavaScript 來實現(xiàn)一個自定義音頻控件,并提供了一些交互和視覺反饋。

這個功能可以在許多應(yīng)用場景中使用,如學(xué)習(xí)平臺、在線課程、音頻播客等,提升用戶的互動體驗。

完整代碼:

<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>Document</title>
		<script src="http://www.yourdomain.com/js/jquery-3.7.1.min.js"></script>
		<style>
			/* 模擬audio標(biāo)簽的樣式 */
			.audioDiv {
				display: flex;
				align-items: center;
				width: 204px;
				height: 29px;
				background-color: #a0a0a0;
				border-radius: 9px;
				padding: 10px;
				cursor: pointer;
			}

			/* 播放按鈕 */
			#playButton img {
				width: 30px;
				height: 30px;
				cursor: pointer;
			}

			/* 時間顯示 */
			#countdown {
				margin-left: 10px;
				font-size: 14px;
				width: 45px;
			}

			/* 播放文本 */
			#bofang {
				font-size: 14px;
				color: #333;
				margin-left: 10px;
			}

			/* 控制器樣式 */
			#playButton:hover {
				opacity: 0.8;
			}
		</style>
	</head>
	<body>
		<div class="audioDiv" id="playButton">
			<img src="./img/yuyin.png" alt="播放圖標(biāo)" />
			<p id="countdown">4:31</p>
			<p id="bofang">播放錄音</p>
		</div>

		<script>
			let audio = new Audio('./img/道姑朋友.mp3');//音頻自己本地插入
			let audioStatus = true;
			let times;
            
            // 播放錄音功能
			$('#playButton').on('click', function() {
				if (audioStatus === true) {
					audio.play();
					player();
					audioStatus = false;
				} else {
					audio.currentTime = 0;
					audio.pause();
					clearInterval(times);
					$('#countdown').html('4:31');
					audioStatus = true;
				}

				setTimeout(function() {
					audio.currentTime = 0;
					audio.pause();
					$('#countdown').html('4:31');
					audioStatus = true;
				}, 271000); // 播放完后暫停(4分鐘31秒)
			});

			function player() {
				let m = 4;
				let s = 31;
				times = setInterval(function() {
					if (s < 10) {
						// 如果秒數(shù)少于10,在前面加上0
						$('#countdown').html(m + ':0' + s);
					} else {
						$('#countdown').html(m + ':' + s);
					}
					s--;
					if (s < 0) {
						// 如果秒數(shù)少于0,就變成59秒
						s = 59;
						m--;
					}
				}, 1000);
			}
		</script>
	</body>
</html>

總結(jié)

到此這篇關(guān)于利用JavaScript實現(xiàn)點(diǎn)擊音頻實現(xiàn)播放功能的文章就介紹到這了,更多相關(guān)js點(diǎn)擊音頻實現(xiàn)播放內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 完美解決mui框架off-canvas側(cè)滑超出部分隱藏?zé)o法滾動的問題

    完美解決mui框架off-canvas側(cè)滑超出部分隱藏?zé)o法滾動的問題

    下面小編就為大家分享一篇完美解決mui框架off-canvas側(cè)滑超出部分隱藏?zé)o法滾動的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • JS中產(chǎn)生標(biāo)識符方式的演變

    JS中產(chǎn)生標(biāo)識符方式的演變

    本文記錄下JS中產(chǎn)生標(biāo)識符方式的演變,從ES5到ES6,ES5及其之前是一種方式,只包含兩種聲明(var/function),ES6則增加了一些產(chǎn)生標(biāo)識符的關(guān)鍵字,如 let、const、class。
    2015-06-06
  • 詳解JavaScript的內(nèi)存空間、賦值和深淺拷貝

    詳解JavaScript的內(nèi)存空間、賦值和深淺拷貝

    這篇文章主要介紹了JavaScript的內(nèi)存空間、賦值和深淺拷貝,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 用JS剩余字?jǐn)?shù)計算的代碼

    用JS剩余字?jǐn)?shù)計算的代碼

    函數(shù)中首先給maxChars變量指定了值(輸入?yún)^(qū)內(nèi)最多可用的字符數(shù),注意,該變量是個可用于計算的數(shù)值)
    2008-07-07
  • bootstrap+jQuery實現(xiàn)的動態(tài)進(jìn)度條功能示例

    bootstrap+jQuery實現(xiàn)的動態(tài)進(jìn)度條功能示例

    這篇文章主要介紹了bootstrap+jQuery實現(xiàn)的動態(tài)進(jìn)度條功能,結(jié)合完整實例形式分析了bootstrap+jQuery實現(xiàn)動態(tài)進(jìn)度條的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • 再談javascript原型繼承

    再談javascript原型繼承

    Javascript原型繼承是一個被說爛掉了的話題,但是自己對于這個問題一直沒有徹底理解,今天花了點(diǎn)時間又看了一遍《Javascript模式》中關(guān)于原型實現(xiàn)繼承的幾種方法,下面來一一說明下,在最后我根據(jù)自己的理解提出了一個關(guān)于繼承比較完整的實現(xiàn)。
    2014-11-11
  • js實現(xiàn)鼠標(biāo)點(diǎn)擊文本框自動選中內(nèi)容的方法

    js實現(xiàn)鼠標(biāo)點(diǎn)擊文本框自動選中內(nèi)容的方法

    這篇文章主要介紹了js實現(xiàn)鼠標(biāo)點(diǎn)擊文本框自動選中內(nèi)容的方法,涉及javascript鼠標(biāo)點(diǎn)擊事件onClick及選擇事件select的使用技巧,非常簡單實用,需要的朋友可以參考下
    2015-08-08
  • JavaScript動態(tài)操作select下拉框

    JavaScript動態(tài)操作select下拉框

    這篇文章介紹了JavaScript動態(tài)操作select下拉框的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 純Javascript實現(xiàn)Windows 8 Metro風(fēng)格實現(xiàn)

    純Javascript實現(xiàn)Windows 8 Metro風(fēng)格實現(xiàn)

    Windows 8 Metro風(fēng)格設(shè)計,實現(xiàn)網(wǎng)站或系統(tǒng)功能的導(dǎo)航,在本文將為大家介紹下如何用純Javascript實現(xiàn)Windows 8 Metro風(fēng)格,感興趣的朋友可以參考下
    2013-10-10
  • JavaScript限定圖片顯示大小的方法

    JavaScript限定圖片顯示大小的方法

    這篇文章主要介紹了JavaScript限定圖片顯示大小的方法,涉及javascript針對圖片的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03

最新評論