js浏览器端录制电脑声卡的声音(电影音乐)编码成MP3和wav文件下载效果代码

代码语言:html

所属分类:其他

代码描述:js浏览器端录制电脑声卡的声音(电影音乐)编码成MP3和wav文件下载效果代码

代码标签: 浏览器 录制 声卡 电影 音乐 mp3 wav

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>MP3 Recorder</title>
    <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/sprintf.min.js"></script>
    <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/lame.all.js"></script>
</head>

<body>


    <p>本工具可以录制在线视频的音乐(电脑声卡播放的声音),直接浏览器生成,数据不会传服务器</p>
    <p>操作步骤:点击power,选择分享整个屏幕或者对应标签页(没有影响),勾选分享音频,然后点击start即可开始录制,点击stop结束录制,按文件名下载</p>
    <p>之后你可以修改文件名,然后上传到网易云音乐的云盘,这样你就可以在手机上听或者下载音乐了</p>


    <audio id="AudioPlayer" controls="controls">
  <source type="audio/mpeg">
</audio><br>

    <button id="btnPower" onclick="onPower()">Power</button>
    <button id="btnRecord" onclick="onRecord()" disabled="">Record</button>
    <button id="btnStop" onclick="onStop()" disabled="">Stop</button>

    <p>
        <a id="DownloadLink" download="recorded.mp3">recorded.mp3</a>
        <span id="status"></span>
    </p>

    <div id="log" style="width:100%; border:solid thin; margin:8px; padding:4px;">
        Waiting for scripts...<br> Window loaded.<br>
    </div>

    <script id="logger" type="text/javascript">
        //printf-style console output.
        function log(fmt,args) {
          var text= this.sprintf.apply(this,arguments);
          var element= document.querySelector('#log');
          element.innerHTML+= text+"<br>\n";
        }
        
        //printf-style status line.
        function status(fmt,args) {
          var text= this.sprintf.apply(this,arguments);
          var element= document.getElementById('status');
          element.innerHTML= text;
        }
        
        (function(window) {
          log("Window loaded.");
        })(window);
    </script>

    <script id="loadjs" type="text/javascript">
        //Load a supplemental javascript on demand.
        //cb is the function that will be called when the script is ready.
        function loadScript(name,path,cb) {
          var node= document.createElement('SCRIPT');
          node.type= 'text/javascript';
          node.src= path;
          var head= document.getElementsByTagName('HEAD');
          if(head[0]!=null)
            head[0].appendChild(node);
          if(cb!=null) {
            node.onreadystagechange= cb;
            node.onload= cb;
          }
        }
    </script>

    <script id="taskUI" type="text/javascript">
        //(C)2016 nlited systems inc. http://nlited.org
        var gAudio= null;       //Audio context
        var gAudioSrc= null;    //Audio source
        var gNode= null;        //The audio processor node
        var gIsLame= false;     //Has lame.min.js been loaded?
        var gLame= null;        //The LAME encoder library
        var gEncoder= null;     //The MP3 encoder object
        var gStrmMp3= [];       //Collection of MP3 buffers
        var gIsRecording= false;
        var gCfg= {             //Encoder configuration
          chnlCt:         2,    //1=mono, 2=stereo
          bufSz:          4096, //input buffer size (bytes), 16bit signed int.
          sampleRate:     44100,//Input sample rate (samples per second)
          bitRate:        128    //Output bit rate (9-128)
        };
        var gPcmCt= 0;          //Total input bytes
        var gMp3Ct= 0;          //Total output bytes
        
        //Power button
        function onPower(btn) {
          if(!gAudio) {
            PowerOn();
          } else {
            PowerOff();
          }
        }
        async function startCapture() {
          let captureStream = null;
        
          try {
            captureStream = await navigator.mediaDevices.getDisplayMedia({audio: { autoGainControl:false,echoCancellation:false,
                        googleAutoGainControl:false,noiseSuppressi.........完整代码请登录后点击上方下载按钮下载查看

网友评论0