H5 网页录音功能,支持 pc、android,新兼容了 ios,欢迎 star - V2EX
xiangyuecn

H5 网页录音功能,支持 pc、android,新兼容了 ios,欢迎 star

  •  1
     
  •   xiangyuecn Apr 24, 2019 9943 views
    This topic created in 2594 days ago, the information mentioned may be changed or developed.

    非黑即白,哪有即是黑的又是白的,ios 看起来像是怪胎,既支持(Safari)又不支持(WKWebView),火狐和 ie6 都比他可爱。并不算是兼容 IOS,可以说是为苹果手机另外写了一套代码,IOS 上增加微信浏览器、小程序 web-view 的录音支持。

    本来我是拒绝兼容的,但后来还是做了兼容处理,这几天就把它开源了。

    新兼容 IOS 微信的 GitHub 代码: https://github.com/xiangyuecn/Recorder/tree/master/app-support-sample


    18 replies    2019-04-25 08:30:36 +08:00
    coderabbit
        1
    coderabbit  
       Apr 24, 2019 via Android
    first mark
    ihidchaos
        2
    ihidchaos  
       Apr 24, 2019 via Android
    secong mark
    ihidchaos
        3
    ihidchaos  
       Apr 24, 2019 via Android
    @ihidchaos second
    logicr
        4
    logicr  
       Apr 24, 2019 via Android
    third mark
    w292614191
        5
    w292614191  
       Apr 24, 2019
    我是用微信 Js-sdk 实现的,只能录制 60 秒。到 58 秒,我就 stop 了。
    xiangyuecn
        6
    xiangyuecn  
    OP
       Apr 24, 2019
    @w292614191 对哦,我忘记了微信限制 60 秒了,晚点我在程序里面做一下限制
    ddllzz
        7
    ddllzz  
       Apr 24, 2019 via Android
    感谢,已经用上了
    shell314
        8
    shell314  
       Apr 24, 2019 via Android
    Star 一波
    Huelse
        9
    Huelse  
       Apr 24, 2019
    star +1
    Exia
        10
    Exia  
       Apr 24, 2019
    很赞
    xnode
        11
    xnode  
       Apr 24, 2019
    mark++!!!!
    xiangyuecn
        12
    xiangyuecn  
    OP
       Apr 24, 2019
    @w292614191 #5 @xiangyuecn #6 已经没有 1 分钟限制了,想录几秒录几秒。但录久了编码会慢的要死
    dearxe2v
        span class="no">13
    dearxe2v  
       Apr 24, 2019
    帮顶
    ThirdParty
        14
    ThirdParty  
       Apr 24, 2019
    我再来一个 H5 语音转文字 和 文字转语音, 是 w3c 定义的标准,由浏览器实现

    ```
    <form action="">
    <input type="text" />
    <select>
    </select>
    <input type="submit" />
    </form>
    <div class="output"></div>
    <script>
    window.Onload= function () {

    // var grammar = '#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghostwhite | gold | goldenrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;'
    // //var recognition = new SpeechRecognition();
    // var recognition = new webkitSpeechRecognition();
    // //var speechRecognitiOnList= new SpeechGrammarList();
    // var speechRecognitiOnList= new webkitSpeechGrammarList();
    // speechRecognitionList.addFromString(grammar, 1);
    // recognition.grammars = speechRecognitionList;
    // //recognition.cOntinuous= false;
    // recognition.lang = 'en-US';
    // recognition.interimResults = false;
    // recognition.maxAlternatives = 1;

    // var diagnostic = document.querySelector('.output');
    // var bg = document.querySelector('html');

    // document.body.Onclick= function () {
    // recognition.start();
    // console.log('Ready to receive a color command.');
    // }

    // recognition.Onresult= function (event) {
    // var color = event.results[0][0].transcript;
    // diagnostic.textCOntent= 'Result received: ' + color;
    // bg.style.backgroundColor = color;
    // }



    var synth = window.speechSynthesis;

    var inputForm = document.querySelector('form');
    var inputTxt = document.querySelector('input');
    var voiceSelect = document.querySelector('select');


    function populateVoiceList() {
    voices = synth.getVoices();

    for (i = 0; i < voices.length; i++) {
    var option = document.createElement('option');
    option.textCOntent= voices[i].name + ' [' + voices[i].lang + '] ';

    if (voices[i].default) {
    option.textContent += ' DEFAULT';
    }

    option.setAttribute('data-lang', voices[i].lang);
    option.setAttribute('data-name', voices[i].name);
    voiceSelect.appendChild(option);
    }
    }

    populateVoiceList();
    if (speechSynthesis.onvoiceschanged !== undefined) {
    speechSynthesis.Onvoiceschanged= populateVoiceList;
    }

    inputForm.Onsubmit= function (event) {
    event.preventDefault();

    var utterThis = new SpeechSynthesisUtterance(inputTxt.value);
    var selectedOption = voiceSelect.selectedOptions[0].getAttribute('data-name');
    for (i = 0; i < voices.length; i++) {
    if (voices[i].name === selectedOption) {
    utterThis.voice = voices[i];
    }
    }
    synth.speak(utterThis);
    inputTxt.blur();
    }
    };
    </script>
    ```
    xiangyuecn
        15
    xiangyuecn  
    OP
       Apr 24, 2019
    @ThirdParty 语音合成看起来靠谱点,语音识别嘛... 推荐一波:用 Recorder 来录音,然后把音频发送给第三方接口进行识别,简单可靠准确率奇高
    rookiebulls
        16
    rookiebulls  
       Apr 24, 2019 via iPhone
    赞一个
    ouou8
        17
    ouou8  
       Apr 24, 2019
    赞一个
    sailing0505
        18
    sailing0505  
       Apr 25, 2019 via Android
    看看
    About     Help     Advertise     Blog     API     FAQ     Solana     2843 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 77ms UTC 03:03 PVG 11:03 LAX 20:03 JFK 23:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86