js实现控制音乐播放
js实现控制音乐播放
用js实现控制音乐播放其实很简单,但是第一次去做可能会遇到一点点小问题。
比如说我自己,第一次想实现一个播放器效果,然后在网上搜寻半天照着自己的理解写下如下代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title></title>
<script type="text/javascript">
var mp3 = document.getElementById("music");
function start() {
mp3.play();
}
function stop() {
mp3.pause();
}
</script>
</head>
<body>
<video id="music" controls="controls" src="刚好遇见你.mp3">
</video>
<input type="button" id="" value="开始" onclick="start()" />
<input type="button" id="" value="停止" onclick="stop()" />
</body>
</html>
我自己感觉是没有任何问题的,然而事情总是超乎我的意料之外,却又在情理之中。可能是因为js学的太浅了,对js的认知度太低,可以说几乎不懂吧。
这时候Ctrl+S保存,然后Ctrl+R打开浏览器一运行,欸嘿,没反应!然后又打开控制台,看到几行红色,说是什么什么是错误。如图:

咱也看不懂,于是乎就复制到浏览器去搜一下。
搜到的结果也是五花八门,并没有我需要的。
然后又自己思考一番。
先在方法外用console.log(mp3);输出这个变量。
再次打开浏览器按下F12显示null,感觉应该也没问题,毕竟是mp3音频文件。
然后又在方法内用console.log(mp3);输出这个变量,结果在浏览器控制台里面什么也没有显示,这时候就是问题所在了。
可能是变量范围的问题吧!咱也不懂!
于是乎又打开浏览器搜索一番,似懂非懂,大致意思就是说:方法内获取不到方法外的变量,方法内需要调用的变量最好就在方法内写。
但是我印象里好像又有全局变量这种东西,害,咱也不懂!当个规律记下吧!
最后实现效果的代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title></title>
<script type="text/javascript">
function start() {
var mp3 = document.getElementById("music");
mp3.play();
console.log(mp3);//null
}
function stop() {
var mp3 = document.getElementById("music");
mp3.pause();
console.log(mp3);//null
}
</script>
</head>
<body>
<video id="music" controls="controls" src="刚好遇见你.mp3">
</video>
<input type="button" id="" value="开始" onclick="start()" />
<input type="button" id="" value="停止" onclick="stop()" />
</body>
</html>
js实现控制音乐播放的更多相关文章
- Android中通过耳机按键控制音乐播放的实现
今天在研究Android中实现Android 4.2.2源码中的Music应用的源码,关于通过耳机按键控制音乐播放的实现,有点好奇,就仔细分析了一下源码, 主要由 MediaButtonIntentR ...
- [MAUI 项目实战] 手势控制音乐播放器(一): 概述与架构
这是一篇系列博文.请关注我,学习更多.NET MAUI开发知识! [MAUI 项目实战] 手势控制音乐播放器(一): 概述与架构 [MAUI 项目实战] 手势控制音乐播放器(二): 手势交互 [MAU ...
- [MAUI 项目实战] 手势控制音乐播放器(四):圆形进度条
@ 目录 关于图形绘制 创建自定义控件 使用控件 创建专辑封面 项目地址 我们将绘制一个圆形的音乐播放控件,它包含一个圆形的进度条.专辑页面和播放按钮. 关于图形绘制 使用MAUI的绘制功能,需要Mi ...
- html5 js控制音乐播放
<!DOCTYPE HTML><html><head><meta charset="UTF-8"><script lang ...
- [MAUI 项目实战] 手势控制音乐播放器(二): 手势交互
@ 目录 原理 交互实现 容器控件 手势开始 手势运行 手势结束 使用控件 拖拽物 创建pit集合 项目地址 原理 定义一个拖拽物,和它拖拽的目标,拖拽物可以理解为一个平底锅(pan),拖拽目标是一个 ...
- [MAUI 项目实战] 手势控制音乐播放器(三): 动画
@ 目录 吸附动画 确定位置 平移动画 回弹动画 使用自定义缓动函数 多重动画 点击动画 项目地址 上一章节我们创建了手势容器控件PanContainer,它对拖拽物进行包装并响应了平移手势和点击手势 ...
- 31.JS实现控制HTML5背景音乐播放暂停
实现控制网站背景音乐的播放暂停在html5中是非常容易和简单的,仅仅几行代码即可实现.首先在网页中嵌入背景音乐,html5代码为: <script src="http://wuover ...
- 原生JS实现音乐播放器!
前 言 最近在复习JS,觉得音乐播放器是个挺有意思的东西,今天就来用我们最原生的JS写一个小小的音乐播放器~ 主要功能: 1.支持循环.随机播放 2.在播放的同时支持图片的 ...
- JS实现音乐播放器
JS实现音乐播放器 前 言 最近在复习JS,觉得音乐播放器是个挺有意思的东西,今天就来用我们最原生的JS写一个小小的音乐播放器~ 主要功能: 1.支持循环.随机播放 2.在播 ...
- 微信小程序-图片、录音、音频播放、音乐播放、视屏、文件
图片: wx.chooseImage(OBJECT) 从本地相册选择图片或使用相机拍照. OBJECT参数说明: 注:文件的临时路径,在小程序本次启动期间可以正常使用,如需持久保存,需在主动调用 wx ...
随机推荐
- 【Git】03 撤销 & 版本回退
回退分为三种情况,每种情况对应了我们文件的存储区域 工作区 | 暂存区 | 版本区(当前分支) 1.文件可能存放在工作区,没有被Git追踪[红色标记状态] 2.文件可能已经添加到暂存区,没有被Git提 ...
- Attempting to use uninitialized value beta2_power -------TensorFlow报错
版本: Python=3.7 TensorFlow=1.14 具体代码: init=[tf.global_variables_initializer(), tf.local_variables_ini ...
- 为啥华为Atlas的AI卡在二手市场上特别多
首先阐述一下事实,那就是华为Atlas的AI卡在二手市场上特别多,基本上在某鱼上一搜索就是满屏,尤其是关键词:华为Atlas300,但是作为同等level的NVIDIA公司的A100却较之相比少的多, ...
- python语言绘图:绘制一组二项分布图
代码源自: https://github.com/PacktPublishing/Bayesian-Analysis-with-Python ============================= ...
- UITableView的原理——探究及重新实现代码
转自简书,原文地址,本文主要探讨一些特殊细节,像视图重用这类最基本的原理可在源码里查看. 先前重新实现了一个list容器视图,由于Apple没有开源,在此分享过程中探索到的UITableView一些细 ...
- ρars/ey 题解
给个链接:ρars/ey. 我们考虑一个树上背包. 设 \(f_{u,i}\) 表示在 \(u\) 号节点的子树内删除 \(i\) 个点的最小代价.显然有答案为 \(f_{1,siz_1-1}\). ...
- SMU Summer 2023 Contest Round 10(ICPC — International Collegiate Programming Contest Asia Regional Contest, Yokohama,2018)
SMU Summer 2023 Contest Round 10(ICPC - International Collegiate Programming Contest Asia Regional C ...
- 如何将Linux的NIC 名称更改为 eth0 而不是 enps33 或 enp0s25,只要几秒钟
概述 我们使用Linux系统,网卡名称通常都是eth0,但是有一些新的linux发行版,网卡名字 enps33 或 enp0s25. peng@ubuntu:~$ ifconfig ens33 Lin ...
- 22张图详解浏览器请求数据包如何到达web服务器(搞懂网络可以毕业了)
浏览器的请求数据包如何到达web服务器? 很多读者对于其中的完整流程不是特别的了解,下面一口君通过这22张图,详细的讲解我们点击浏览器的网址之后,数据包是如何经过重重险阻到达web server的. ...
- manim边学边做--圆弧形
圆弧形可以算是一种特殊的圆形,它是圆形的一部分.manim中,单独为圆弧形状封装了几个模块: Arc:通用的圆弧,根据半径和角度来绘制圆弧 ArcBetweenPoints:根据两个点和角度来绘制圆弧 ...