【发布时间】:2026-01-11 19:35:02
【问题描述】:
更新 问题在于我对我工作的环境缺乏了解,但下面给出的答案应该对其他有类似问题的人有用。
编辑:似乎问题在于尝试将我的 mp3 导入我的 React 应用程序/组件时发生了一些奇怪的事情。 当前的问题是,当我尝试使用时:
import soundfile from "../neure-resources/test.mp3"
我最终遇到以下错误:
“找不到模块“../neure-resources/test.mp3”
为任何其他导入组件解决此问题将确保正在导入的组件也已定义为可导出,但如何对 MP3 文件执行此操作?
所以首先我不确定我的问题是否与导入/链接我的 mp3 文件或如何在 React(或其他)中播放音频剪辑有关。一旦我们弄清楚我的问题到底是什么,我将编辑标题。
所以我有一个应用程序,我在网页上有一个按钮,用户可以按下该按钮来播放 mp3 文件。简单的东西,但我经常遇到以下错误:
HTTP 加载失败,状态为 404。媒体资源“...”加载失败。
现在,虽然我对文件路径等不是非常精通。但我想通过查看指南和示例来弄清楚,但我没能做到。
我的缩写文件结构类似于(查看帖子底部以获得更详细的说明):
学生/src/组件
在组件下,我将我的实际应用程序放在一个文件夹中,并在组件下的另一个文件夹中存储我的“资源”,因此:
components/my-app-folder/my-actual-app.tsx
components/my-resources/my.mp3
对于我理解的文件路径
“..”
表示路径从当前位置上方的一个文件夹开始,这将是我的
“/components”-文件夹
我的资源文件夹在组件文件夹下,所以我认为应该没问题。 我查找了其他一些关于在 React 中播放音频的 SO 问题,发现一个问题大致建议如下:
我的内心
render()
let path = "../my-resources/test.mp3";
let audio = new Audio(path);
然后是 JSX 部分:
audioPlayer = (
<div className="count-number-equivelance-audioPlayer">
<button id="equivalence-audio-button" onClick={() => audio.play()}>Soundclip!</button>
</div>
);
我试过了:
let path = "../my-resources/test.mp3";
和
let path = "../../my-resources/test.mp3";
因为我不确定一个“..”是否指向实际应用程序嵌套的文件夹,并且需要另一个“..”来实际指向“components”文件夹,但它们都产生相同的错误。我还尝试使用整个路径并将 mp3 移动到与应用程序本身相同的文件夹,但得到了相同的结果。
所以我非常困惑,我是否只是在我的应用程序中使用外部资源很糟糕,或者我的实际代码和/或 React 知识应该归咎于此。我收到的错误会让我相信资源没有正确定位,但我不确定这是否只是错误代码的副作用。
编辑:我也在虚拟环境中工作,如果这对情况有一些影响,我会在本地运行我自己的堆栈。
文件树的图片也可以参考:
图片中打开的文件包含相关应用及其尝试使用的资源:
通往组件的路径如下(如果我试图在一张图片中抓取整个路径,图片会非常大)。
/Users/“用户名”/arvio/client/student/src/components
【问题讨论】:
-
你解决过这个问题吗?我有同样的问题,不胜感激
-
@olefrank 在我的情况下,这是一个项目新手的问题,我还没有被告知我正在使用的环境假设文件不是本地文件而是在服务器上,所以我必须上传到服务器,然后将 img/audio 文件提供给我以在项目中使用。我会假设下面 Rahul Roy 所说的在您自己机器上的本地项目中可以正常工作。
-
我通过将音频文件放在“公共”文件夹(创建 React 应用程序)并像这样引用它们来修复它:
${process.env.PUBLIC_URL}/audio/click.ogg
标签: javascript reactjs typescript audio jsx