Javascript 如何使用声音模块停止音频?
我正在使用React中的use sound(使用声音)模块,并尝试制作播放/暂停按钮。当我单击按钮时,音频会播放,但当我再次单击时,无法停止音频 我在控制台中检查,看到单击按钮可以正确更改isPlaying值,但实际音频不会停止 有人知道如何停止音频吗?万分感谢 这是我的按钮代码,“music”变量是音频文件的路径:Javascript 如何使用声音模块停止音频?,javascript,reactjs,Javascript,Reactjs,我正在使用React中的use sound(使用声音)模块,并尝试制作播放/暂停按钮。当我单击按钮时,音频会播放,但当我再次单击时,无法停止音频 我在控制台中检查,看到单击按钮可以正确更改isPlaying值,但实际音频不会停止 有人知道如何停止音频吗?万分感谢 这是我的按钮代码,“music”变量是音频文件的路径: import React from "react"; import { FontAwesomeIcon } from "@fortawesome/re
import React from "react";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import useSound from "use-sound";
const PlayBtn = ({ music }) => {
const sound = music;
const [play, { stop, isPlaying }] = useSound(sound);
console.log(isPlaying);
return (
<span>
<FontAwesomeIcon
icon={["far", "play-circle"]}
onClick={isPlaying ? stop : play}
/>
</span>
);
};
export default PlayBtn;
从“React”导入React;
从“@fortawesome/react fontawesome”导入{FontAwesomeIcon}”;
从“使用声音”导入useSound;
const PlayBtn=({music})=>{
声音=音乐;
const[play,{stop,isplay}]=useSound(声音);
控制台日志(显示);
返回(
);
};
导出默认PlayBtn;
这将帮助您使用挂钩进行音频播放和暂停。只需根据您的代码编辑和编写功能
import React, { useState, useEffect } from "react";
const useAudio = url => {
const [audio] = useState(new Audio(url));
const [playing, setPlaying] = useState(false);
const toggle = () => setPlaying(!playing);
useEffect(() => {
playing ? audio.play() : audio.pause();
},
[playing]
);
useEffect(() => {
audio.addEventListener('ended', () => setPlaying(false));
return () => {
audio.removeEventListener('ended', () => setPlaying(false));
};
}, []);
return [playing, toggle];
};
const Player = ({ url }) => {
const [playing, toggle] = useAudio(url);
return (
<div>
<button onClick={toggle}>{playing ? "Pause" : "Play"}</button>
</div>
);
};
export default Player;
import React,{useState,useffect}来自“React”;
const useAudio=url=>{
const[audio]=useState(新音频(url));
const[playing,setPlaying]=useState(false);
const toggle=()=>setPlaying(!playing);
useffect(()=>{
播放?audio.play():audio.pause();
},
[播放]
);
useffect(()=>{
audio.addEventListener('end',()=>setPlaying(false));
return()=>{
audio.removeEventListener('end',()=>setPlaying(false));
};
}, []);
返回[播放,切换];
};
常量播放器=({url})=>{
常量[播放,切换]=使用音频(url);
返回(
{播放?“暂停”:“播放”}
);
};
导出默认播放器;
谢谢!!!我会试试这个解决方案!