【发布时间】:2019-12-29 17:29:01
【问题描述】:
我有一个反应组件,它有一个带有处理程序的按钮来播放音频。
const initializeAudio = () => {
let context = new AudioContext()
let analyser = context.createAnalyser()
let audioSrc = context.createMediaElementSource(audioRef.current)
audioSrc.connect(analyser)
analyser.connect(context.destination)
analyser.fftSize = 512
setAnalyser(analyser)
}
const play = () => {
if (!audioSet) {
initializeAudio()
setAudioSet(true)
audioRef.current.volume = 0.5
}
audioRef.current.play()
setPlaying(true)
interval = window.setInterval(turnToTime, 1000)
}
<audio
data-keepplaying
ref={audioRef}
id="audioElement"
src={audio}
/>
<WaveForm analyser={analyser} />
<button onClick={isPlaying ? pause : play} className="media_button">
<FontAwesomeIcon
className="fa-icon"
icon={isPlaying ? "pause" : "play"}
style={!isPlaying && { paddingLeft: "0.4rem" }}
></FontAwesomeIcon>
</button>
在 Firefox 和 chrome 上一切正常,但在 iphone 上的 safari 上无法正常工作,有人知道为什么吗?
我觉得我的音频是为了响应点击而创建的,这是新限制所需要的,但为什么 safari 不起作用?
【问题讨论】:
标签: reactjs safari web-audio-api