美文网首页
vue 录音pcm 格式音频,并回放服务器返回的pcm 格式音频

vue 录音pcm 格式音频,并回放服务器返回的pcm 格式音频

作者: 冰落寞成 | 来源:发表于2024-03-06 10:40 被阅读0次

使用插件

使用js-audio-recorder 插件进行录音,使用pcm-player插件播放pcm 格式的音频

录音

1、安装js-audio-recorder

npm i js-audio-recorder

2、使用

  import Recorder from 'js-audio-recorder';
 onMounted(()=>{
  Recorder.getPermission().then(() => {
 
      recorder.value= new Recorder({
        sampleBits: 16,                 // 采样位数,支持 8 或 16,默认是16
        sampleRate: 16000,              // 采样率,支持 11025、16000、22050、24000、44100、48000,根据浏览器默认值,我的chrome是48000
        numChannels: 2,                 // 声道,支持 1 或 2, 默认是1
      });
      console.log('recorder.value',recorder.value)
    }, (error) => {
        console.log(`${error.name} : ${error.message}`);
      });
})

3、开始录音

if(!recorder.value){
        recorder.value= new Recorder({
            sampleBits: 16,                 // 采样位数,支持 8 或 16,默认是16
            sampleRate: 16000,              // 采样率,支持 11025、16000、22050、24000、44100、48000,根据浏览器默认值,我的chrome是48000
            numChannels: 2,                 // 声道,支持 1 或 2, 默认是1
          });
      }
      recorder.value.start().then((res) => {
      
        }, (error) => {
          // 出错了
          console.log(`${error?.name} : ${error?.message}`);
      });
    }

4、结束录音并获取pcm 数据

recorder.value.stop()
pcmData.value=recorder.value.getPCM()

播放

1、安装 pcm-player

npm i pcm-player

2、使用

 import PCMPlayer from 'pcm-player'

3、 播放

player.value = new PCMPlayer({
        inputCodec: 'Int16',
        channels: 2,
        sampleRate: 16000,
        flushTime: 2000,
        onended:()=>{ // 监听播放结束
         
        }
      
    });
    player.value.feed(pcmData.value);

5 获取到的pcmDataView 转换成base64 使用websocket发送给服务端

const pcmDataView = recorder.value.getPCM();

  const base64String =  window.btoa(String.fromCharCode(...new Uint8Array(pcmDataView.buffer)))

6 前端获取服务端返回的base64,转成

const base64 = atob(base64String); // 将 Base64 字符串解码为二进制数据
    const bytes = new Uint8Array(base64.length);
    for (let i = 0; i < base64.length; i++) {
      bytes[i] = base64.charCodeAt(i);
    }
    const arrayBuffer = bytes.buffer; // 将 Uint8Array 转换为 ArrayBuffer

相关文章

  • iOS Audio Queue播放PCM音频流

    PCM音频流播放主要步骤如下: 1、确定文件格式 播放PCM音频流前,我们首先需要确定播放的PCM音频的格式信息,...

  • 音视频开发02--使用LAME库转换pcm文件到mp3

    android 使用 AudioRecord 对麦克风进行录音得到的是 pcm 格式的原始音频数据,pcm文件是不...

  • PCM WAV

    pcm(不压缩),也称为raw格式。音频输入最原始的格式,不用再解码。 wav(不压缩,pcm编码):在pcm文件...

  • iOS音频格式之间的相互转化

    首先介绍一下常用的音频文件格式 PCM格式: PCM属于编码格式,PCM是经过话筒后直接得到的未经压缩的数据流数据...

  • 移动端(iOS,安卓)即时通讯长链接传输格式speex音频文件录

    录制原理:1,RecorderManager中通过AudioSession进行PCM音频录制,录制格式为WAV格式...

  • PCM音频格式

    工具:Adobe Audition CS6 PCM文件:模拟音频信号经模数转换(A/D变换)直接形成的二进制序列,...

  • FFmpeg录制音频PCM,WAV, PCM 转WAV

    音频录制与播放命令 录制 播放播放PCM需要指定相关参数: ar:采样率 ac:声道数 f:采样格式 PCM音频录...

  • 音频解码

    1. 音频格式 有两类主要的音频文件格式: 无损格式,例如WAV,PCM,TTA,FLAC,AU,APE,TAK,...

  • 音频文件的编码格式

    -acodec libfdk_aac 对音频文件的编格式做转换 pcm_s16le 从 wav音频文件中导出PCM裸数据

  • 音频编码

    音频基础知识 PCM格式pcm是经过话筒录音后直接得到的未经压缩的数据流数据大小=采样频率采样位数声道*秒数/8采...

网友评论

      本文标题:vue 录音pcm 格式音频,并回放服务器返回的pcm 格式音频

      本文链接:https://www.haomeiwen.com/subject/ncfrzdtx.html