pc浏览器获取音频流,怎样实时传给后台

代码:
if (navigator.getUserMedia) {

        navigator.getUserMedia(
            // constraints
            {
                //video: true,
                audio: true
            },
            // successCallback
            function (localMediaStream) {
                var audio = document.querySelector('audio');
                console.log(localMediaStream,'嘻嘻嘻');
                audio.src = window.URL.createObjectURL(localMediaStream);
                console.log(audio.src,'吱吱吱')
                // do whatever you want with the video
                audio.play();
            },
            // errorCallback
            function (err) {
                console.log("The following error occured: " + err);
            });
    } else {
        alert("getUserMedia not supported by your web browser or Operating system version");
    }
    
    
    localMediaStream是通过pc端麦克风获取的音频流,可以转化成blob形式的url,加在audio上就可以播放出来。
    问题:localMediaStream这个视频流怎样实时传递给后端,(类似于直播那种),我目前能做到的是将这个音频流先保存成mp3,再传给后台。
    这个视频流怎样实时传递?
阅读 9.8k
3 个回答

可以实时的把blob通过ajax提交给后端

视频和音频原理一样,这里以音频为例。

其实这个问题你需要和后台协商的, 假设后台有一个接受文件流的接口,那么代码类似这样:

navigator.getUserMedia(
            // constraints
            {
                //video: true,
                audio: true
            },
            // successCallback
            function (localMediaStream) {
               fetch(url, {
                   method: 'POST',
                   body: localMediaStream
               })
            },
            // errorCallback
            function (err) {
                console.log("The following error occured: " + err);
            });
    } else {
        alert("getUserMedia not supported by your web browser or Operating system version");
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题