【问题标题】:node.js package how to access other local files for audionode.js 包如何访问其他本地文件的音频
【发布时间】:2022-11-10 20:26:20
【问题描述】:

我正在尝试创建我的自定义 npm 包。
除非我尝试访问同一个包中的另一个声音文件,否则一切正常。
结构体:

sounds
    /soft_click_1s.wav
index.js
package.json

index.js:

var audio = new Audio('/sounds/soft_click_1s.wav');
audio.play();

如何创建音频元素并播放它?

【问题讨论】:

  • Audio 仅在浏览器中有效
  • 您必须将文件公开给浏览器
  • @Konrad Linkowski 我明白了,是否有标准的导入/导出方法?还是我应该要求用户运行cp node_modules/packagename/sounds/soft_click_1s.wav public/sounds
  • 您可以尝试将音频存储为 base64
  • @Konrad Linkowski 好的,谢谢!我将尝试研究 base64 音频并更新问题。

标签: node.js npm package


【解决方案1】:

我尝试了很多东西,我的最终解决方案如下:

声音/声音.js

export const click_sound = "this_is_a_very_long_64_bit_sound_string"

index.js

import {sound_click} from './sounds/sounds.js';

var audio = new Audio("data:audio/wav;base64," + sound_click);
audio.play();

这不是最干净的解决方案,但它工作得很好。
我只是在 js 文件中堆积超长的音频字符串。

我也尝试导入其他依赖项,但在使用它们时遇到了问题,并且由于我对节点模块的了解仍然缺乏,我在查看他们的 github 文件时无法理解太多。

如果有人对此有更清洁的解决方案,请分享:)
非常感谢 Konrad 推荐 base64 音频!

【讨论】:

    猜你喜欢
    • 2012-01-14
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    相关资源
    最近更新 更多