小编jih*_*uNI的帖子

添加 chrome.webRequest 侦听器时出现“无匹配签名”错误

我有这个代码:

chrome.webRequest.onCompleted.addListener(function(details){
  console.log(details);
});
Run Code Online (Sandbox Code Playgroud)

我正在尝试理解和使用 chrome.webRequest API。我无法弄清楚为什么代码不起作用,我只是想通过记录 chrome 发出的所有请求来尝试 API。我给自己定的权限在我的清单上这两个模式http://*/*https://*/*但我将永远从我的背景脚本这个错误:Uncaught TypeError: No matching signature.任何帮助表示赞赏。

google-chrome google-chrome-extension

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

通过 WebSocket 发送音频

我正在实现getUserMedia()录制音频消息。我想录制音频,然后使用 websocket 将其传递给另一个对等点。我怎么能做到这一点?我已经搜索了 SO,我只发现了一些有趣的问题,但没有任何东西可以指导我找到可行的解决方案。我正在将 Pusher API 用于我的应用程序的 websocket 部分。这是我正在测试的代码。

$(document).on("click", ".audio-chat",function(){
  console.log('clicked');
  var channel = $('input[name="channelName"]').val();
  navigator.mediaDevices.getUserMedia({
    audio: true
  })
  .then(function(stream){
    var mediaRecorder = new MediaRecorder(stream);
    mediaRecorder.start();
    console.log(mediaRecorder.state);
    console.log("recorder started");

    mediaRecorder.ondataavailable = function(e) {
      chunks.push(e.data);
      console.log(chunks);
    }
    setTimeout(function(){
      mediaRecorder.stop();
      console.log(mediaRecorder.state);
      console.log("recorder stopped");
      var blob = new Blob(chunks, {'type':'audio/webm; codecs=opus'});
      //console.log(blob);
      chunks = [];
      const audioUrl = window.URL.createObjectURL(blob);
      var data = {channel:channel,message:audioUrl,socketId:socketId}
      $.post('api/message.php', data);
    }, 10000);
  });
});
Run Code Online (Sandbox Code Playgroud)

javascript websocket

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

在点击jQuery上绑定两个事件

我想用一个按钮创建一个简单的用户交互,以开始和停止录制音频,例如whatsapp。我查看了stackoverflow来了解我是否写错了,因为我知道不可能在同一元素上绑定两个click事件,因此我决定在codepen上测试代码,但不会产生预期的结果:

$('#audioBtn').on('click' ,function(e){
  e.preventDefault();
  if( $(this).hasClass('active') ){
    $(this).removeClass('active')
    .addClass('inactive');
    console.log('Recording stopped');
  }
});

$('#audioBtn').on('click' , function(e){
  e.preventDefault();
  if( $(this).hasClass('inactive') ){
    $(this).addClass('active')
    .removeClass('inactive');
    console.log('Recording start');
  }
});

Run Code Online (Sandbox Code Playgroud)

发生的事情是两个事件同时在控制台上登录,但这不是我想要的,我只想使用相同的按钮来开始和停止录制,并在用户录制音频时更改图标。有什么办法吗?

html javascript jquery

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