javascript - 从 JavaScript 到 Django 的实时音频流

标签 javascript python jquery django web-applications

我想用 JavaScript 在浏览器中记录客户端的麦克风并实时发送它以在 Python 中处理音频流。这可以用 Django 实时完成吗?

谢谢!

最佳答案

是的,您可以使用 javascript 来做到这一点,它允许您麦克风 并以 *.wav 的形式提供 blob 数据 ,*.webm 等格式然后你需要使用 ajax 在 django 端发送响应我给一个链接允许你录制音频或视频等

First you see mention link then another it example

如果你使用 p5 js 是 posiable 和

let mic, fft;
let recorder, soundFile;
let can1
function setup() {

  can1=createCanvas(400, 400);
  noFill();
  can1.parent('canvas-area');
  mic = new p5.AudioIn();
  mic.start();

  fft = new p5.FFT();
  fft.setInput(mic);
}

function draw() {
  background(255,255,255);
  let spectrum = fft.analyze();
  beginShape();
  for (i = 0; i < spectrum.length; i++) {
    ellipse(200,200,100+spectrum[i],100+spectrum[i]); 
  }
  endShape();
}


function mediaplay(){
  getAudioContext().resume();

  recorder = new p5.SoundRecorder();
  recorder.setInput(mic);
  soundFile = new p5.SoundFile();
  recorder.record(soundFile);
}

function mediastop(){

  recorder.stop();
  AjaxRequest()
  // saveSound(soundFile,'test.wav')
}

//do logic for send 1 half minute chunks or minute chucks
function AjaxRequest() {
    var form = new FormData();
    form.append("wavfile", soundFile.getBlob(), "file");

      $.ajax({
        url: "You url",
        method: "POST",
        data: form, //here passing the wav file 
        dataType: "json",
        processData: false,
        contentType:false,
        success:function(data){
             console.log(data.success)
          },

      });
}

@django view.py

import FileSystemStoragefrom django.http 
import JsonResponse,HttpResponsefrom django.views.decorators.csrf 
import csrf_exemptimport osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
from django.core.files.storage import default_storageclass GetFile(View):

def get(self,request):   
    return JsonResponse(status=200,data={},safe=False)

# @csrf_exempt  
def post(self,request):  
    wavfile=request.FILES['wavfile']  
    #logic of your wav file what you want to do 
    return JsonResponse(status=200,data={'success':'success'},safe=False)  

我给链接

  1. P5 js
  2. P5 Example
  3. Save Audio

如果您对我的回答满意,请告诉我

关于javascript - 从 JavaScript 到 Django 的实时音频流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60700389/

相关文章:

python - 如何对某些列进行 df.groupby(cols).apply(my_func),同时保留一些列未处理?

javascript - 为什么我只获得一个 math.random 值以及如何获得更多值?

javascript - 如何将点转换为像素以正确缩放

javascript - Array(2) 和 [undefined, undefined] 有什么区别?

javascript - Google Data Studio 自定义图表

python - 在django中单页上传两个文件

python - 使用 PyQT QDialogs (Python) 的视频播放器

javascript - jQuery:每 60 秒显示一次消息

javascript - 有条件地在 html 中包含 JS 脚本

javascript - 如何在使用 ajax jquery 时显示加载程序