【JavaScript】后端返回的二进制流音频数据或本地音频资源,前端如何播放?

这篇具有很好参考价值的文章主要介绍了【JavaScript】后端返回的二进制流音频数据或本地音频资源,前端如何播放?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、接口设置

// 语音播放
export const getVoicePlay = (content: string) => {
  return requestVoice({
    url: '/tts/?text_prompt=' + content,
    method: 'get',
    responseType: 'blob', // 返回类型blob
  });
};

二、数据处理播放

 getVoicePlay(item.content).then((res: any) => {
   console.log(res);
   const blob = new Blob([res], { type: 'audio/wav' });
   const localUrl = (window.URL || webkitURL).createObjectURL(blob);
   const audio = document.createElement('audio');
   audio.style.display = 'none'; // 防止影响页面布局
   audio.controls = true;
   document.body.appendChild(audio);
   audio.src = localUrl;
   audio.playbackRate = 1.3; // 语速
   audio.play();
   
    // 语音播放完毕后,需要手动释放内存
    audio.onended = function () {
      document.body.removeChild(audio);
      URL.revokeObjectURL(localUrl);
    };
 });

三、本地音频资源播放

如果我们要使用本地的音频资源,在 vue3 中那么我们需要对资源的地址做一下处理

// 动态获取本地的音频资源路径
const getWav = (index: number) => {
  return new URL(`/voice/voice${index}.wav`, import.meta.url).href;
};

// 播放音频
const playVoice = (index: number) => {
  const wavFile = getWav(index);
  const audio = document.createElement('audio');
  audio.style.display = 'none'; // 防止影响页面布局
  audio.controls = true;
  document.body.appendChild(audio);
  audio.src = wavFile;
  audio.playbackRate = 1.3;
  audio.play();
  // 语音播放完毕后,需要手动释放内存
  audio.onended = function () {
    document.body.removeChild(audio);
  };
};

感谢

后端返回二进制流音频数据,怎么让其可播放
前端播放二进制语音流文章来源地址https://www.toymoban.com/news/detail-768648.html

到了这里,关于【JavaScript】后端返回的二进制流音频数据或本地音频资源,前端如何播放?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JavaScript数据结构与算法】字符串类(计算二进制子串)

    个人简介 👀 个人主页: 前端杂货铺 🙋‍♂️ 学习方向: 主攻前端方向,也会涉及到服务端(Node.js) 📃 个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀 未来打算: 为中国的工业软件事业效力 n 年 🥇 推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2/3项目

    2024年02月05日
    浏览(27)
  • Vue3 - 详细实现下载从服务端返回的文件流 Blob 对象教程,前端下载后端接口返回的文件流并自动保存到本地,支持任何格式的文件下载(从后端拿到二进制文件流 Blob 对象,前端实现点击下载功能)

    调用服务端(后端)接口拿到文件流,通过前端下载并保存到本地。 本文 实现了在 vue3 项目中,通过后端接口返回的二进制文件流 Blob 对象,在前端进行点击下载并保存到用户本地,任何格式的文件都可以轻松下载, 保证您直接复制代码,改个请求地址就可以使用了, 如下

    2024年02月04日
    浏览(152)
  • 微信小程序获取后台返回的二进制图片

    获取后台返回的二进制图片需要先使用wx.request方法发起网络请求获取图片数据,然后将返回的数据用wx.arrayBufferToBase64方法进行转换,最后将转换后的数据绑定到图片的src属性即可。 参考代码如下 其中,url为后台返回的图片地址,responseType为返回的数据类型为二进制数组。在

    2024年02月10日
    浏览(40)
  • 拷贝音频、视频、word等二进制文件的实现方法,不掉帧

    拷贝音频、视频、word等二进制文件的实现方法:  演示使用BufferedOutputStream 和 BufferedInputStream 使用  使用他们,可以完成二进制文件  思考:字节流可以操作二进制文件,可以操作文本文件吗?True

    2024年02月07日
    浏览(42)
  • [unity] 音频的二进制流转化为audioclip的两种方式

    1、将返回的byte[]数组,转换成float[]数组,然后将通过 audioSource.clip.SetData()方法,将音频数据赋给audiosource,实现语音播放;但这种只有wav很有可以直接用mp3需要第三方库,我没有试过 mp3的请参考:https://blog.csdn.net/L877790502/article/details/119042479 2、将返回的btye[]数组,使用file

    2024年02月11日
    浏览(35)
  • 前端:JS:将图片转为二进制与其他文本传入后端

    在前端,可以将图片转换为二进制数据,并将其与其他文本字符串一起发送到后端。一种常见的方法是将所有数据组合为一个 FormData 对象,然后通过 AJAX 或 Fetch API 将其发送给后端。以下是一个示例: 解释 : 当文件输入框内容发生变化时,会触发 change 事件。然后,它会读

    2024年04月26日
    浏览(28)
  • pyqt5:python读取二进制文件(音频PCM文件)显示波形

    有个项目需要输出10-50Hz的低频信号驱动线圈,考虑使用音频功放硬件,所以做这方面的预研。 参考文章: 作者:很久没安静的回忆了,文章:音频 PCM 详解 作者:怪我冷i,文章:音视频从入门到精通——FFmpeg分离出PCM数据实战 3.作者:cuijiecheng2018,文章:windows下使用FFmp

    2023年04月21日
    浏览(26)
  • 写一个函数返回参数二进制中 1 的个数(c语言三种实现方法)

    (本文旨在自己做题时的总结,我会给出不同的解法,后面如果碰到新的题目还会加入其中,等于是我自己的题库。 方法一: 方法二: 这里说一个方法,任何一个进制数%它的进制位都可以得到它的最低位,任何一个进制数 / 它的进制位都可以将最低位丢弃。比如: 这样我

    2024年02月13日
    浏览(31)
  • 将数据转二进制流文件,用PostMan发送二进制流请求

    一、将byte数组转二进制流文件,并保存到本地 byte [] oneshotBytes=new byte[]{78,-29,51,-125,86,-105,56,82,-94,-115,-22,-105,0,-45,-48,-114,27,13,38,45,-24,-15,-13,46,88,-90,-66,-29,52,-23,40,-2,116,2,-115,17,36,15,-84,88,-72,22,-86,41,-90,-19,-58,19,99,-4,-63,29,51,-69,117,-120,121,3,-103,-75,44,64,-58,-34,73,-22,110,-90,92,-35,-18,-128,16,-

    2024年02月15日
    浏览(29)
  • 【FPGA仿真】Matlab生成二进制、十六进制的txt数据以及Vivado读取二进制、十六进制数据并将结果以txt格式保存

    在使用Vivado软件进行Verilog程序仿真时可能需要对模块输入仿真的数据,因此我们需要一个产生数据的方法(二进制或者十六进制的数据),Matlab软件是一个很好的工具,当然你也可以使用VS等工具。 以下分别给出了使用Matlab模拟产生二进制和十六进制数据的例子,例子仅供参

    2024年02月01日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包