1 回答

TA贡献1744条经验 获得超4个赞
我最终通过以下方式处理这个问题,而不是将所有内容都移到 React 组件,而是保持我原来的 HTML 和 JS 代码原样,并像下面这样包含它们(确保import音频文件并将导入引用为 src):
import React, { Component } from 'react';
import Helmet from "react-helmet"
import { withPrefix, Link } from "gatsby"
import Clap from "./sounds/clap.wav"
import Hihat from "./sounds/hihat.wav"
import Kick from "./sounds/kick.wav"
import Openhat from "./sounds/openhat.wav"
import Boom from "./sounds/boom.wav"
import Ride from "./sounds/ride.wav"
import Snare from "./sounds/snare.wav"
import Tom from "./sounds/tom.wav"
import Tink from "./sounds/tink.wav"
const Javascript30 = ({location }) => {
if (location.pathname === ("/Projects/DrumKit/Javascript30/")){
require("./style.css")
}
else{
console.log("failed to load css")
}
return (
<html>
<body>
<Helmet>
<script src={withPrefix('script.js')} type="text/javascript"></script>
</Helmet>
<div>
<button className="button" id="record">Record</button><br></br>
<button className="button" id="stop">Stop Recording</button><br></br>
<button className="button" id="play">Playback</button><br></br>
</div>
<div className="keys">
<div data-key="65" class="key">
<kbd>A</kbd>
<span class="sound">clap</span>
</div>
<div data-key="83" class="key">
<kbd>S</kbd>
<span class="sound">hihat</span>
</div>
<div data-key="68" class="key">
<kbd>D</kbd>
<span class="sound">kick</span>
</div>
<div data-key="70" class="key">
<kbd>F</kbd>
<span class="sound">openhat</span>
</div>
<div data-key="71" class="key">
<kbd>G</kbd>
<span class="sound">boom</span>
</div>
<div data-key="72" class="key">
<kbd>H</kbd>
<span class="sound">ride</span>
</div>
<div data-key="74" class="key">
<kbd>J</kbd>
<span class="sound">snare</span>
</div>
<div data-key="75" class="key">
<kbd>K</kbd>
<span class="sound">tom</span>
</div>
<div data-key="76" class="key">
<kbd>L</kbd>
<span class="sound">tink</span>
</div>
</div>
<audio data-key="65" src={Clap} preload="auto" crossOrigin="anonymous"></audio>
<audio data-key="83" src={Hihat} preload="auto" crossOrigin="anonymous"></audio>
<audio data-key="68" src={Kick} preload="auto" crossOrigin="anonymous"></audio>
<audio data-key="70" src={Openhat} preload="auto" crossOrigin="anonymous"></audio>
<audio data-key="71" src={Boom} preload="auto" crossOrigin="anonymous"></audio>
<audio data-key="72" src={Ride} preload="auto" crossOrigin="anonymous"></audio>
<audio data-key="74" src={Snare} preload="auto" crossOrigin="anonymous"></audio>
<audio data-key="75" src={Tom} preload="auto" crossOrigin="anonymous"></audio>
<audio data-key="76" src={Tink} preload="auto" crossOrigin="anonymous"></audio>
</body>
</html>
);
};
export default Javascript30;
添加回答
举报