html监听语音,js获取语音.html

content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

Document

div{

width: 200px;

height: 200px;

background: red;

cursor: pointer;

margin: 20px;

display: inline-block;

}

record
stop
send
content

// 获取页面元素

var record = document.querySelector('.record');

var stop = document.querySelector('.stop');

var send = document.querySelector('.send');

var msg_content = document.querySelector('.content');

var audio = document.querySelector('.audio');

// 初始化按钮状态

stop.disabled = true;

// 注册PWA服务

// if ('serviceWorker' in navigator) {

// navigator.serviceWorker.register('/static/js/sw.js')

// .then(function () {

// console.log('SW registered');

// });

// }

//

// // 设置websocket服务器地址

// const wsUrl = 'ws://localhost:8000/';

// const ws = new WebSocket(wsUrl);

// ws.binaryType = "arraybuffer";

//

// // Websocket钩子方法

// ws.onopen = function(evt) {

// console.log('ws open()');

// }

//

// ws.onerror = function(err) {

// console.error('ws onerror() ERR:', err);

// }

//

// ws.onmessage = function(evt) {

// console.log('ws onmessage() data:', typeof(evt.data));

//

// // 创建Blob对象

// var blob_obj = new Blob([evt.data], { 'type': 'audio/ogg; codecs=opus' })

//

// // 添加audio元素

// var tmp_div = document.createElement('div');

// var audio = document.createElement('audio');

// var tmp_span = document.createElement('span');

// var tmp_btn = document.createElement('img');

//

// tmp_div.setAttribute('class', 'myAudio');

// tmp_span.setAttribute('class', 'audio_time');

// tmp_btn.setAttribute('class', 'play_btn');

// tmp_btn.src = "/static/images/audio-high.png"

// audio.setAttribute('id', 'myAudio');

// audio.src = window.URL.createObjectURL(blob_obj);

// audio.onloadedmetadata = function () {

// var dtime = 0;

// setTimeout(() => {

// dtime = audio.duration;

// tmp_span.innerHTML = dtime + '"';

// }, 100);

// };

// tmp_btn.onclick = function () {

// if (audio.paused) {

// audio.play();

// } else {

// audio.pause();

// }

// }

// tmp_div.appendChild(audio);

// tmp_div.appendChild(tmp_btn);

// tmp_div.appendChild(tmp_span);

// msg_content.appendChild(tmp_div);

// }

if (navigator.mediaDevices.getUserMedia) {

console.log('getUserMedia supported.');

var constraints = { audio: true };

var chunks = [];

var onSuccess = function(stream) {

var mediaRecorder = new MediaRecorder(stream);

record.onclick = function() {

mediaRecorder.start();

console.log(mediaRecorder.state);

console.log("recorder started");

stop.disabled = false;

record.disabled = true;

}

stop.onclick = function() {

mediaRecorder.stop();

console.log(mediaRecorder.state);

console.log("recorder stopped");

stop.disabled = true;

record.disabled = false;

}

mediaRecorder.onstop = function(e) {

console.log("data available after MediaRecorder.stop() called.");

// 保存录音

console.log('chunks=====',chunks)

var blob = new Blob(chunks, { 'type' : 'audio/ogg; codecs=opus' });

// var blob = chunks[0]

// 发送录音

// ws.send(blob)

console.log('blob=====',blob)

var audioURL = window.URL.createObjectURL(blob);

console.log('audioURL=====',audioURL)

audio.src = audioURL;

// audio.src=blob

var audio1 = document.createElement('audio');

audio1.controls = true;

audio1.src = audioURL;

// 重置录音数据

chunks = [];

console.log("recorder stopped");

}

// 录音逻辑

mediaRecorder.ondataavailable = function(e) {

chunks.push(e.data);

}

}

var onError = function(err) {

console.log('The following error occured: ' + err);

}

// 开始获取音频流

navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);

} else {

console.log('getUserMedia not supported on your browser!');

}

一键复制

编辑

Web IDE

原始数据

标准视图

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值