<!DOCTYPE html>
<html>
<head>
	<title>网页播放器</title>
	<style>
		body {
			background-color: #f2f2f2;
			font-family: Arial, sans-serif;
		}
		h1 {
			text-align: center;
			margin-top: 50px;
		}
		.container {
			max-width: 800px;
			margin: 0 auto;
			padding: 20px;
			background-color: #fff;
			box-shadow: 0 0 10px rgba(0,0,0,0.2);
			border-radius: 5px;
			margin-top: 20px;
		}
		.playlist {
			margin-top: 20px;
			padding: 0;
			list-style: none;
		}
		.playlist li {
			padding: 10px;
			cursor: pointer;
			transition: background-color 0.3s ease;
		}
		.playlist li:hover {
			background-color: #f2f2f2;
		}
		.playlist li.active {
			background-color: #5cb85c;
			color: #fff;
		}
		audio {
			width: 100%;
			margin-top: 20px;
		}
		.btn {
			display: inline-block;
			padding: 10px 20px;
			background-color: #5cb85c;
			color: #fff;
			border-radius: 5px;
			text-decoration: none;
			margin-top: 20px;
			transition: background-color 0.3s ease;
		}
		.btn:hover {
			background-color: #4cae4c;
		}
	</style>
</head>
<body>
	<h1>网页播放器</h1>
	<div class='container'>
		<ul class='playlist'></ul>
		<audio id='audio'></audio>
		<div>
			<input type='file' id='fileinput'>
			<button class='btn' id='add-btn'>添加本地文件</button>
			<input type='text' id='urlinput' placeholder='输入网络资源链接'>
			<button class='btn' id='play-btn'>播放网络资源</button>
		</div>
	</div>
	<script>
		var playlist = document.querySelector('.playlist');
		var songs = [
			{
				title: '歌曲1',
				file: 'song1.mp3'
			},
			{
				title: '歌曲2',
				file: 'song2.mp3'
			},
			{
				title: '歌曲3',
				file: 'song3.mp3'
			}
		];
		var audio = document.querySelector('#audio');
		var addBtn = document.querySelector('#add-btn');
		var fileInput = document.querySelector('#fileinput');
		var playBtn = document.querySelector('#play-btn');
		var urlInput = document.querySelector('#urlinput');
		var currentSong = null;
<pre><code>	// 生成播放列表
	function renderPlaylist() {
		var html = '';
		for (var i = 0; i &lt; songs.length; i++) {
			var song = songs[i];
			var activeClass = '';
			if (song === currentSong) {
				activeClass = 'active';
			}
			html += '&lt;li class=' + activeClass + '&gt;' + song.title + '&lt;/li&gt;';
		}
		playlist.innerHTML = html;

		// 绑定播放列表点击事件
		var playlistItems = document.querySelectorAll('.playlist li');
		for (var i = 0; i &lt; playlistItems.length; i++) {
			var playlistItem = playlistItems[i];
			playlistItem.addEventListener('click', function() {
				var index = Array.prototype.indexOf.call(playlistItems, this);
				playSong(songs[index]);
			});
		}
	}

	// 播放歌曲
	function playSong(song) {
		if (currentSong) {
			currentSong.active = false;
		}
		currentSong = song;
		currentSong.active = true;
		audio.src = currentSong.file;
		audio.play();
		renderPlaylist();
	}

	// 添加本地文件
	addBtn.addEventListener('click', function() {
		fileInput.click();
	});

	fileInput.addEventListener('change', function() {
		var file = this.files[0];
		var song = {
			title: file.name,
			file: URL.createObjectURL(file)
		};
		songs.push(song);
		playSong(song);
	});

	// 播放网络资源
	playBtn.addEventListener('click', function() {
		var url = urlInput.value;
		var song = {
			title: '网络资源',
			file: url
		};
		songs.push(song);
		playSong(song);
		urlInput.value = '';
	});

	renderPlaylist();
&lt;/script&gt;
</code></pre>
</body>
</html>
网页播放器:带播放列表、本地文件和网络资源支持

原文地址: https://www.cveoy.top/t/topic/nVY7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录