当前位置: 首页 > 面试题库 >

Reactjs音频按钮?

席安康
2023-03-14
问题内容

在HTML中,我通过此代码创建一个音频按钮

<html><head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
        <script type="text/javascript" src="http://netdna.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
        <link href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
        <link href="http://pingendo.github.io/pingendo-bootstrap/themes/default/bootstrap.css" rel="stylesheet" type="text/css">
    </head><body>
        <script>
        function aud_play_pause() {
            var myAudio = document.getElementById("myTune");
            if (myAudio.paused) {
                myAudio.play();
            } else {
                myAudio.pause();
            }
        }
        </script>
        <audio id="myTune">
            <source src="./audio/rain.mp3">
        </audio>
        <div class="col-md-2">
            <div class="row">
              <div class="col-md-12">
                   <a class="btn btn-block btn-lg btn-primary" data-toggle="button" onclick = "aud_play_pause()">Rain</a>
             </div>
            </div>
        </div>
</body>

它可以正常工作,但是在reactjs中,我在下面使用三个文件,并且该文件与html具有相同的路径,但是代码无法正常工作,因此我得到了一个空白网站。对不起,我的英语不好。index.html

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
    <script type="text/javascript" src="http://netdna.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <link href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
    <link href="http://pingendo.github.io/pingendo-bootstrap/themes/default/bootstrap.css" rel="stylesheet" type="text/css">
  </head>
  <body>
    <div id="root"></div>
  </body>
</html>

Test.js

var React = require('react');

var Test = React.createClass( {  
        aud_play_pause() {
            var myAudio = document.getElementById("myTune");
            if (myAudio.paused) {
                myAudio.play();
            } else {
                myAudio.pause();
            }
        },
        render () {
            return(
               <div>
                    <audio id="myTune">
                        <source src="./audio/rain.mp3" />
                    </audio>
                    <div className="col-md-2">
                        <div className="row">
                            <div className="col-md-12">
                                <a className="btn btn-block btn-lg btn-primary" data-toggle="button" onClick = {this.aud_play_pause()}>Rain</a>
                            </div>
                        </div>
                    </div>
               </div>
            );
        }
});
export default Test;

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Test from './Test';

ReactDOM.render(
  <Test />,
  document.getElementById('root')
);

问题答案:

onClick在反应期望功能。但是,当您这样做时onClick = {this.aud_play_pause()},它会返回一个值。将onClick定义更改为

onClick = {this.aud_play_pause}

码:

var React = require('react');

var Test = React.createClass( {  
        aud_play_pause() {
            var myAudio = this.mytune;
            if (myAudio.paused) {
                myAudio.play();
            } else {
                myAudio.pause();
            }
        },
        render () {
            return(
               <div>
                    <audio id="myTune" ref = {(ip)=> {this.mytune = ip}}>
                        <source src={require("./audio/rain.mp3")}/>
                    </audio>
                    <div className="col-md-2">
                        <div className="row">
                            <div className="col-md-12">
                                <a className="btn btn-block btn-lg btn-primary" data-toggle="button" onClick = {this.aud_play_pause}>Rain</a>
                            </div>
                        </div>
                    </div>
               </div>
            );
        }
});
export default Test;

例如,您还需要一个捆绑器webpack来翻译您的代码。

请参阅 此处 的设置示例:

另外,如果您使用的最新版本React,则会收到警告,提示afte v15.5.0
React.createClass将被弃用,因此最好从以下位置开始React.Component

import React from 'react';

class Test extends React.Component{

        aud_play_pause() {
            var myAudio = this.myTune;
            if (myAudio.paused) {
                myAudio.play();
            } else {
                myAudio.pause();
            }
        }
        render () {
            return(
               <div>
                    <audio id="myTune" ref={(ip) => {this.mytune = ip}}>
                        <source src={require("./audio/rain.mp3")} />
                    </audio>
                    <div className="col-md-2">
                        <div className="row">
                            <div className="col-md-12">
                                <a className="btn btn-block btn-lg btn-primary" data-toggle="button" onClick = {this.aud_play_pause}>Rain</a>
                            </div>
                        </div>
                    </div>
               </div>
            );
        }
}
export default Test;


 类似资料:
  • 音频概述 没有音频的游戏是不完整的,例如背景音乐或音响效果。Unity 的音频系统灵活而强大。它可以导入大多数标准音频文件格式,并且为播放 3D 空间中的声音提供了复杂的功能,以及可选的音响效果,例如回音和过滤。Unity 还可以记录来自用户机器上任意可用麦克风的音频,以便在游戏过程中使用,或者用于存储和传输。 基础理论 在现实生活中,声音由对象发出,并被听众听到。声音被感知的方式取决于许多因素。

  • 我的Android项目中的raw文件夹中有各种音频文件。我的代码不起作用。当我单击共享按钮应用程序时,它崩溃了。 这是我的代码: 和Android清单添加:

  • 音频 Unity 的音频功能包括完整 3D 空间声音、实时混音和母带处理、混音层次结构、快照、预定义效果等等。 阅读本节以了解 Unity 中的音频,包括剪辑、声源、侦听器、导入和声音设置。 相关教程: 音频 相关的提示、技巧和故障排除,等参阅 音频知识库 部分。

  • Audio接口仅适用于780和更高版本的手机QQ,如需在780以下版本使用音频功能,请使用原来的接口 音频播放接口分为普通音频接口(normal)和音效接口(effect)。普通接口和老接口类似,支持play,pause等方法,以及各种属性和事件(详情参考文档末尾的表)。effect接口用于播放短时,高频的音效,建议尽可能复用同一个对象来播放音频。ios只能播放,停止音效。android可以播放,

  • InnerAudioContext jd.createInnerAudioContext() 创建内部 audio 上下文 InnerAudioContext 对象。 返回值 InnerAudioContext InnerAudioContext InnerAudioContext 实例,可通过 jd.createInnerAudioContext 接口获取实例。 属性 string src 音频

  • 我想从视频中提取对齐的音频流。目标是获得与视频精确对齐的音频序列。 问题:视频和音频序列不对齐。输出音频持续时间比视频输入短。 要复制的脚本: 我的尝试(没有成功): 按照此答案中的建议添加 添加,同时导出视频(链接) 在Audacity中打开。那里的持续时间是 在VLC中打开。持续时间: 显式设置帧率 其他视频文件 如果能给我一些建议,我将不胜感激。非常感谢。