标签: webkitaudiocontext

从HTML5音频麦克风流中获取音频级别

在先前的堆栈溢出问题上,我发现了以下代码:

<script>
// this is to store a reference to the input so we can kill it later 
var liveSource;
// creates an audiocontext and hooks up the audio input
function connectAudioInToSpeakers(){
  var context = new webkitAudioContext();  
  navigator.webkitGetUserMedia({audio: true}, function(stream) {
    console.log("Connected live audio input");
    liveSource = context.createMediaStreamSource(stream);
    liveSource.connect(context.destination);
    console.log(liveSource);
  });
 }
// disconnects the audio input
function makeItStop(){
   console.log("killing audio!");
   liveSource.disconnect();
 }
// run this when the page loads
connectAudioInToSpeakers();
</script>
Run Code Online (Sandbox Code Playgroud)

它从用户的麦克风获取音频并通过扬声器播放.我想要的是输入的水平(幅度)(例如,如果发生剪辑,我可以显示红色警告,或告诉用户他们需要说出来).在上面的代码中,我如何实际获取原始数据?

例如,如何将实际数字记录到控制台?我猜它都存储在liveSoure中?

我不需要任何聪明的画布动画等,只需要一个数字,告诉我输入的声音有多大.这个比较简单吗?如果是这样,它是如何完成的?

谢谢

webkitaudiocontext web-audio-api

3
推荐指数
1
解决办法
4013
查看次数

即使创建了 onclick,Safari AudioContext 也暂停

我在使用 Safari(桌面和移动设备)创建 AudioContext 时遇到了麻烦。似乎即使在用户交互时创建,它仍然被暂停。

我的代码:

<button onclick="test()">Test</button>
Run Code Online (Sandbox Code Playgroud)
const test = () => {
    window.AudioContext = window.AudioContext || window.webkitAudioContext;
    audioContext = new AudioContext();
    console.log(audioContext.state); // Suspended
}
Run Code Online (Sandbox Code Playgroud)

这应该是一个最低限度的工作示例,对吗?这里有什么问题?

safari mobile-safari webkitaudiocontext audiocontext web-audio-api

3
推荐指数
1
解决办法
2472
查看次数

HTML5 Audio API - "音频资源无法用于AudioContext构建"

我正在尝试为HTML5音频创建图形均衡器类型可视化 - 此时仅使用webkitAudioContext进行Chrome.

当我尝试改变音频源即播放不同的歌曲时,我发现了异常和不可预测的行为.我读到某个地方,我应该等到音频上的"canplay"事件被触发,然后再连接到上下文/分析器:

var context, sourceNode, analyser, javascriptNode, audio;

var ctx = $("#songcanvas").get()[0].getContext("2d");    


function loadSong(url) { 
    if (audio!=undefined) { audio.pause(); }
    audio = new Audio();
    audio.src = url;
    audio.addEventListener("canplay", function(e) {
         setupAudioNodes();
    }, false);
}

function setupAudioNodes() {
        context = new webkitAudioContext();
        javascriptNode = context.createJavaScriptNode(2048, 1, 1);
        javascriptNode.connect(context.destination);

        analyser = context.createAnalyser();
        analyser.smoothingTimeConstant = 0.3;
        analyser.fftSize = 512;

        sourceNode = context.createMediaElementSource(audio);
        sourceNode.connect(analyser);
        analyser.connect(javascriptNode);

        sourceNode.connect(context.destination);

        javascriptNode.onaudioprocess = function() {
            var array =  new Uint8Array(analyser.frequencyBinCount);
            analyser.getByteFrequencyData(array);
            ctx.clearRect(0, 0, 1000, 325);
            ctx.fillStyle="rgba(32, 45, …
Run Code Online (Sandbox Code Playgroud)

javascript html5 html5-audio webkitaudiocontext

2
推荐指数
1
解决办法
4237
查看次数

录制 webaudio api 音频上下文的声音

我在我的项目中使用网络音频 api。有没有办法记录发送到 webkitAudioContext.destination 的音频数据?.wav 文件正在我的浏览器中播放,因此应该有某种方法将该数据存储到 (.wav) 文件中。我知道这是可能的,但还没有找到任何解决方案:( recorder.js 可以帮助我,但到目前为止我发现它只是记录麦克风实时输入,是否可以在帮助下记录我的音频(.wav 文件) recorder.js 的吗?请帮忙

我正在使用此示例进行录制https://github.com/mattdiamond/Recorderjs

audio-recording html5-audio webkitaudiocontext web-audio-api

1
推荐指数
1
解决办法
3609
查看次数