javascript - 如何在反应js中的切换按钮上停止歌曲
问题描述
这是在切换按钮上播放歌曲的简码,我的问题是当我单击切换按钮暂停时,音乐没有暂停
import { React, useState } from 'react';
import './audio.css';
import music from './BLOOD.mp3';
const PlaySong = () => {
var song = new Audio(music);
const [playMusic, setPlayMusic] = useState(false);
const handlePlayMusic = () => {
let state = !playMusic;
setPlayMusic(state);
console.log(state);
if(state === true){
song.play()
} else {
song.pause(); // the song did not stop when I call this method I don't
know why
}
}
return (
<div className="container">
<div className="button r" id="button-4">
<input type="checkbox" className="checkbox" onChange=
{handlePlayMusic} />
<div className="knobs" />
<div className="layer" />
</div>
</div>
)
}
export default PlaySong
解决方案
最后,它正在工作,这就是代码:
const [activeSong, setActiveSong] = useState(false);
var [saveSong, setSaveSong] = useState({});
var drake = {
value: 3,
name: 'Energy',
artist: 'Drake',
audio: music, // I get it from import music './song.mp3'
};
function handlePlayPause() {
let states = !activeSong;
setActiveSong(states);
if (states) {
playSong(drake); // load song and play it
}
else {
togglePause(saveSong); // pause song
}
}
function playSong(drake) {
var Song = new Audio(drake.audio);
Song.play();
setSaveSong(Song);
return Song;
}
function togglePause(saveSong) {
saveSong.pause();
setSaveSong({});
}
推荐阅读
- c++ - 在编译时禁止在其他函数内调用函数
- python - pandas 和 numpy 对处理非数字数据有什么好处吗?
- c# - 以实时秒数改变变量
- flutter - 如何使图像centerInParent颤动
- vhdl - 带有选择错误的 VHDL 预期“(”,或标识符或一元运算符
- python - 如何在 selenium python 中无限等待元素可点击?
- java - 如何在 Spring 数据流服务器中将包含 10 个 Spring 批处理作业的应用程序拆分为 10 个任务?
- python - 如何检查字典中的值是否完全相同?
- python - UTF-8 错误编码,找出错误编码的方式
- javascript - JavaScript数组的长度为1但它是空的?