在react-js中播放声音

2024-02-22

我尝试在react-js 上播放声音,但无法启动。 在获取 InitialState 之前,我在 ReactClass 中初始化了声音变量:

var App = React.createClass({
audio: new Audio('files/audio.mp3'),
getInitialState: function () {
return {
  playSound: false,
   ........
 }
}

这是我用于启动和停止的功能:

   playSound: function() {
if(!this.state.playSound){
    this.setState({
        playSound: true,
    }, function(){
      console.log("play sound 1");
      this.audio.play();
      console.log("play sound 2");
    });
}
},

stopSound: function() {
if(this.state.playSound){
    this.setState({
        playSound: false,
    }, function(){
        console.log("stop sound 1");
        this.audio.pause();
        console.log("stop sound 2");
    });
}
},

但我得到了这个答案:

react-app.js:346 Uncaught (in promise) DOMException: The element has no supported sources.

我已经尝试过使用 .mp3 和 .wav 文件。但它不会启动。我究竟做错了什么?

!!!编辑: 还尝试添加 HTML 项目:

  <audio id="beep" loop>
         <source src="files/ring.wav" type="audio/wav" />
      </audio>

并具有以下启动/停止:

  playSound: function() {
if(!this.state.playSound){
    this.setState({
        playSound: true,
    }, function(){
      console.log("play sound 1");
      var audioElement = document.getElementById('beep');
      audioElement.setAttribute("preload", "auto");
      audioElement.autobuffer = true;
      audioElement.load();
      audioElement.play();
      console.log("play sound 2");
    });
}
},

stopSound: function() {
if(this.state.playSound){
    this.setState({
        playSound: false,
    }, function(){
        console.log("stop sound 1");
        var audioElement = document.getElementById('beep');
        audioElement.pause();
        console.log("stop sound 2");
    });
}
},

然后我在启动时没有收到错误,但它没有启动。当我按下暂停键时,我得到:

Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause().

!!!编辑2:

我还注意到,如果我设置按钮,就会播放声音。如果我打开文件管理器,转到我的 index.html 并打开它,它就可以正常工作。如果我尝试从 webpack-server: localhost:8000/app/index.html 访问该页面,它将无法工作。得到相同的 DOMException。为什么是这样?


经过一段时间的尝试,我在我的 index.html 文件中制作了 2 个按钮,1 个用于启动声音,一个用于停止。所以我尝试了,我注意到它可以在我的文件管理器中运行,但如果我从 webpack 服务器尝试则不行。 所以我检查了我的路径,而不是: “files/audio.mp3”我将其更改为“../files/audio.mp3”。这是一个菜鸟错误,但这就是当你让 Android 开发人员使用 javascript 工作时会发生的事情:)))

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在react-js中播放声音 的相关文章

  • 使用 javascript 更改 div 颜色

    div style height 20px width 100 background color 000000 div br
  • 通过pm2运行node.js,但经常重新启动:通过信号[SIGINT]以代码[0]退出

    我试图在我的系统上运行 node js 但遇到了这个问题 2016 06 01 20 46 28 App app with id 13 and pid 12633 exited with code 0 via signal SIGINT 2
  • 定义 js-xlsx 单元格范围

    我正在尝试使用 js xlsx 读取 Excel 值 我可以使用以下代码从工作簿工作表中获取单元格值 if typeof require undefined XLSX require xlsx var workbook XLSX readF
  • Javascript - 在加载所有图像后执行

    看了别人的问题我想 window onload 会回答我的问题 我已经尝试过这个 但它会在页面加载时立即执行代码 而不是在图像加载之后 如果有什么区别的话 图像来自 CDN 并且不是相对的 有人知道解决办法吗 我没有使用 jQuery 想要
  • 创建一个简单的 10 秒倒计时

    我想要一行这样写的 Your download will begin in 10 9 8 etc Beginning on page load seconds 我已经设置了 10 秒下载文本 并且我还查看了其他 stackoverflow
  • window.onbeforeunload 在 Android Chrome 上不会触发 [alt.解决方案?]

    我开发了一个简单的聊天应用程序 我正在使用 window onbeforeunload当有人关闭选项卡 浏览器时 基本上是当用户离开房间时 通知其他用户 这是我的代码 scope onExit function scope chatstat
  • 了解 sort() 比较函数

    我正在使用一个电子商务平台 该平台无法重新排序产品属性字段的选项 这真的很糟糕 因为要插入新选项 您几乎必须删除所有现有选项并重新开始 我正在尝试在客户端进行操作 这是我正在处理的内容 这是针对鞋码的 9 EE 9 1 2 EE 10 EE
  • Chrome 扩展同步调用 - 仅在窗口关闭后创建窗口

    我有这个代码 function voteNewWindow mailNum chrome windows create url http www google com incognito true function window conso
  • javascript jquery 使用脚本更改脚本的src

    我有一个 JavaScript 脚本 它有一个 src 元素 这个 src 是一个 url 我想使用 javascript 更改它 一次更改为其他内容 或者动态创建它 使用 javascript jquery 动态创建脚本元素的最佳方法是什
  • 如何动态突出显示网页上的字符串?

    我想创建带有 url 的页面 例如 http xyzcorp schedules 2015Aug24 Aug28 Jim Hawkins http xyzcorp schedules 2015Aug24 Aug28 Billy Bones
  • 将文本大小调整为矩形 在 Canvas HTML5 中调整大小

    我是 Canvas 新手 我正在创建一个网站 以在调整矩形大小时增加文本 我尝试了很多 但没有任何效果 实际上 我希望如果我仅按其宽度调整矩形大小 向左拉伸 向右拉伸 则仅应增加文本宽度而不是字体大小 我已经完成了字体大小 但发现增加孤立文
  • 如何从 JSON 响应重定向?

    所以我尝试使用 Flask 和 Javascript 上传器 Dropzone 上传文件并在上传完成后重定向 文件上传正常 但在烧瓶中使用传统的重定向 return redirect http somesite com 不执行任何操作 页面
  • 在 jQuery 可排序中对多个选定项目进行排序?

    我试图在 jQuery 可排序集中选择多个项目 然后将选定的项目一起移动 这是我的弱点开始尝试使其发挥作用 http jsfiddle net benstenson CgD8Y 这是代码 HTML div class container d
  • 了解 JavaScript - 资源

    使用 StackOverflow 的微型 Digit Blog 功能进行描述here https stackoverflow com about 我想发布以下我刚刚看到的 我觉得很有趣的谷歌技术谈话视频 我一直在理解 javascript
  • console.log() 显示同一对象属性的矛盾值

    我想我可能要疯了 我使用 console log 来查看对象的状态 然后在下一行对同一对象的特定属性执行 console log 并为每个属性获取不同的值 我正在使用的代码是 console log this pictures Items
  • 为什么 Web Worker 性能在 30 秒后急剧下降?

    我正在尝试提高在网络工作人员中执行时脚本的性能 它旨在解析浏览器中的大型文本文件而不会崩溃 一切都运行得很好 但我注意到使用网络工作者时大文件的性能存在严重差异 于是我做了一个简单的实验 我在同一输入上运行脚本两次 第一次运行在页面的主线程
  • 在管道中重用变量的功能方式

    在 javascript 和 typescript 中与 Ramda 一起使用函数式编程 我经常发现自己编写如下代码 const myFun c gt const myId c id const value pipe getAnotherO
  • 禁用特定 div 上的 Tab 键

    我有以下结构 div div Some content div div Some content div div 我想 禁用 div2 上的 tab 键 我的意思是按下 tab 键时 div2 的元素不会获得焦点 有没有简单的方法可以使用
  • React 应用程序中未调用 Microsoft Graph Toolkit 组件的事件处理程序

    我正在尝试在我的 React 应用程序中使用 Microsoft Graph Toolkit 中的登录组件 它工作得很好 但我似乎无法让任何事件发生 例如 import React from react import MgtLogin Pr
  • MongoDB中如何通过引用字段进行查询?

    我有两个 Mongo 模式 User id ObjectId name String country ObjectId Reference to schema Country Country id ObjectId name String

随机推荐

  • ProgressDialog 动画在较大的 setText() 上暂停

    我正在尝试在 EditText 中设置大文本 该操作可能需要 30 秒以上 因此我使用 ProgressDialog 它会显示 但没有动画 然后在操作完成后消失 这是我的简化代码 class FileOpener extends Async
  • 如何在点宏中访问案例类的参数列表

    我正在尝试在 dotty 中学习元编程 特别是编译时代码生成 我认为通过构建一些东西来学习是一个很好的方法 所以我决定制作一个 CSV 解析器 它将行解析为案例类 我想使用点宏来生成解码器 trait Decoder T def decod
  • 为什么需要 Server.HtmlEncode?

    我无法理解为什么需要 Server HtmlEncode MSDN 指出它用于将潜在不安全的字符编码为 HTML 编码的等效字符 有人可以告诉我这些字符如何不安全并要求我们使用 Server HtmlEncode 吗 Thanks 字符可能
  • 使用 Win API 确定可执行文件的实例是否已在运行

    我需要确保我的 C 应用程序只有 1 个实例正在运行 我该如何使用 Win API 检索有关我当前应用程序的信息 GetCurrentProcess 会给我一个关于我的应用程序的句柄 我如何检索有关它的信息 检索用户所有正在运行的进程的列表
  • 如何在 Android Oreo 中管理来自未知来源的安装?

    在 Android Oreo 8 0 中 对如何允许安装来自未知来源的应用程序 从用户的角度来看 以及获取安装权限的过程 从开发人员的角度来看 进行了一些更改 由于我发现在开发人员方面找到所有必要的步骤特别困难 因此我认为在这里询问解决方案
  • 比较 Haskell 中的函数

    有什么方法可以比较 Haskell 中的两个函数吗 我的想法是答案是否定的 因为函数不会派生 Eq 类型类 然而 我正在尝试编写一个非常简单的函数 这似乎是一件正常的事情 search Enum a gt a gt a gt Card gt
  • 如何将 readLines 的输出转换为 R 中的数据帧

    我有一个包含多行的 txt 文件 每行都是由空格分隔的文本 每行中的列数可能不同 我需要一次读取每一行 将其放入数据框中并打印 我试过这个 x lt readLines output txt for i in 2 length x data
  • 为什么二叉树的插入方法中根总是为空

    我正在尝试为 BST 类实现递归插入节点方法 public void insertNode Node r Node n if r null System out println r n n data r n else System out
  • Django - CreateView - 如何声明变量并在模板中使用它

    如何在 Django 的 Createview 中声明变量 以便我可以从其模板中使用它 例如 我想在模板中使用 place slug 我从 urls py 传递它 如下所示 urls py urlpatterns patterns r ne
  • React Native - 垂直对齐图像,调整大小模式“包含”

    当图像具有 包含 调整大小模式时 它似乎在中心对齐 对齐实际图像 但图像内容在 Flex 启动时对齐 对齐
  • Socket.io 检测客户端何时断开连接

    我正在编写一个应用程序 当用户访问我的站点时 我打开一个套接字 当用户位于站点上时通过套接字发送数据来记录信息 并在用户离开站点时将信息存储在数据库中 我当前面临的问题是 虽然我可以检测到套接字何时与服务器断开连接 但我不知道哪个套接字对应
  • XML 到 C# 类中的 StackOverflowException

    我正在尝试基于以下 XML 代码在 C 中创建一个类
  • dbo.数据库对象名称中的前缀,我可以忽略它吗?

    我正在寻找一个高性能的默认策略来处理 dbo 前缀 我意识到 dbo 前缀不仅仅是语法噪音 但是我在过去 8 年的基于 MS 的开发中跳过了 dbo 的输入 前缀并忽略其功能 除了存储过程编译锁的性能问题之外 在 SQL 查询和存储过程中跳
  • 如何将必要的文件包含到独立客户端项目的输出中?

    我的解决方案包括 Client 启动项目 UI层 依赖于取决于 App App 库 应用层 汇编器 依赖于取决于 Lib1 Lib1 库 业务逻辑层 需要特定文件才能正常工作 ThirdParty dll 我已经添加ThirdParty d
  • SQL Server CE数据库大小问题

    我有一份来自一家倒闭公司的申请 它似乎使用 SQL Server CE 数据库 我搜遍了系统也没找到 sdf文件 看来数据库已经变得太大了 知道如何找到数据库并更改最大大小吗 错误信息 无法记录应用程序启动 System Data Enti
  • 最长公共子序列:为什么这是错误的?

    int lcs char A char B int m strlen A int n strlen B int X malloc m sizeof int int Y malloc n sizeof int int i int j for
  • 将 MVC 2 升级到 MVC 3 视图问题

    我正在尝试将现有的 ASP net MVC 2 Web 应用程序升级到 MVC 3 这样我就可以使用 Razor Viewengine 等的优点said http weblogs asp net scottgu archive 2010 0
  • 如何在Python中使图像适合标签

    所以在 python 中我有一个用于显示图像的标签 但图像相当大 超出了标签的大小 有没有办法加载图像以适合标签而不调整它们的大小 这就是我现在所做的 labelWidth top winfo screenwidth labelHeight
  • Railsauthenticate_or_request_with_http_basic

    在我的 RoR 应用程序中 我需要使用基本身份验证来保护页面 并且我希望每次用户链接到该页面时都会询问凭据 所以我在操作之前添加了一个过滤器 如下所示 before filter request confirm only gt delete
  • 在react-js中播放声音

    我尝试在react js 上播放声音 但无法启动 在获取 InitialState 之前 我在 ReactClass 中初始化了声音变量 var App React createClass audio new Audio files aud