Javascript 使用createMediaElementSource键入脚本/响应Web音频API错误

Javascript 使用createMediaElementSource键入脚本/响应Web音频API错误,javascript,reactjs,typescript,web-audio-api,Javascript,Reactjs,Typescript,Web Audio Api,我试图遵循一个基本的,除了我使用TypesScript和React(用CreateReact应用程序制作)而不是vanilla JS。因为我使用的是React,所以我使用useRef钩子来引用jsx中的音频元素,而不是像教程中那样的document.querySelector()。下面是有问题的代码: const audioContext = new AudioContext(); const audioRef = useRef<HTMLMediaElement>(null

我试图遵循一个基本的,除了我使用TypesScript和React(用CreateReact应用程序制作)而不是vanilla JS。因为我使用的是React,所以我使用useRef钩子来引用jsx中的音频元素,而不是像教程中那样的document.querySelector()。下面是有问题的代码:

  const audioContext = new AudioContext();

  const audioRef = useRef<HTMLMediaElement>(null);

  const track = audioContext.createMediaElementSource(audioRef.current);
这消除了编辑器中的错误,但随后代码在浏览器中失败;这就是我遇到的错误:

TypeError:未能对“AudioContext”执行“createMediaElementSource”:参数1不是“HTMLMediaElement”类型

我还尝试将audioRef变量定义为HTMLAudioElement,而不是HTMLMediaElement,如:
const audioRef=useRef(null)但这并不能解决任何问题

我还应该注意,我在一个普通的TS文件中尝试了这一点,并在那里得到了相同的错误。所以我认为这个问题与useRef钩子的使用无关


有什么办法可以让它发挥作用吗?我担心类型定义与Web Audio API的功能不匹配。

我意识到了问题:createMediaElementSource被audioRef.current调用,而audioRef.current在执行时为null。哎呀

const track = audioContext.createMediaElementSource(audioRef.current as HTMLMediaElement);