Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将音频blob转换为上传到后台的文件(不在本地保存)

将音频blob转换为上传到后台的文件(不在本地保存)
EN

Stack Overflow用户
提问于 2020-10-08 05:36:14
回答 1查看 1.2K关注 0票数 0

编辑:这里有几个小的打字错误/错误,现在已经更正了,他们解决了一半的问题。另一半在公认的答案中。

..。

我正在客户端录制麦克风音频(nuxt/vue),并希望将其发送到我的后端(Strapi)。我有一个MediaRecorder记录器,当记录停止时,数据将被添加到我的recordingFile数组中。这部分工作,在录制后,我可以播放它与嵌入式播放器。

HTML部件:

代码语言:javascript
运行
AI代码解释
复制
<audio
  id="localaudio"
  ..
></audio>

JS:

代码语言:javascript
运行
AI代码解释
复制
recorder = new MediaRecorder(mediaStream);

...     

recorder.addEventListener("dataavailable", function(e) { 
        document.querySelector("#localaudio").src = URL.createObjectURL(e.data); //add it to the player element on the page for playback
        recordingFile.push(e.data); // pushing to array recordingFile
      });

然而,我在上传到我的Strapi后端时遇到了麻烦。我认为原因是当Strapi需要一个文件时,我正在尝试上传一个blob。

代码语言:javascript
运行
AI代码解释
复制
  let blob = new Blob(recordingFile, { type: "audio/ogg" });

  const data = {
    "user" : "test",
    "files.File" : blob //prefix is strapi convention
  };

  const formData = new FormData();
  formData.append('data', JSON.stringify(data));

  axios({
    method: "post",
    url: "http://localhost:1337/recordings",
    data: formData,
    headers: {
      "content-type": `multipart/form-data;`
    }
  })

我确实得到了一个肯定的响应和一个带有测试“user=”的新条目,但文件字段仍然为空。我尝试发送文件URL (URL.createObjectURL(..))而不是斑点本身,但它也不起作用。

我正在遵循strapi documentation的说明,但它使用的是文件系统中的文件,而不是在浏览器中创建的blobs。

有什么提示吗?

编辑: recording.settings.json:

代码语言:javascript
运行
AI代码解释
复制
{
  "kind": "collectionType",
  "collectionName": "recordings",
  "info": {
    "name": "Recording"
  },
  "options": {
    "increments": true,
    "timestamps": true,
    "draftAndPublish": true
  },
  "attributes": {
    "File": {
      "model": "file",
      "via": "related",
      "allowedTypes": [
        "images",
        "files",
        "videos"
      ],
      "plugin": "upload",
      "required": false
    },
    "name": {
      "type": "string"
    }
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-08 05:52:48

文档实际上建议您将文件或blob (两者都可以使用)附加到FormData实例,而不是data对象。

代码语言:javascript
运行
AI代码解释
复制
let blob = new Blob(recordingFile, { type: "audio/ogg" });
let file = new File([blob], 'recording.ogg');

const data = {
  "user" : "test",
};

const formData = new FormData();
formData.append('files.file', file);
formData.append('data', JSON.stringify(data));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64256382

复制
相关文章
使用Matplotlib制作动图
我们可以使用Matplotlib的animation模块的FuncAnimation类制作动画,你需要提供的只是一个动态更新变化数据的函数。 下面是一个最基本的例子:
卡尔曼和玻尔兹曼谁曼
2019/01/22
1K0
使用Matplotlib制作动图
Jupyter notebook最简原型界面设计 - ipywidgets与lineup_widget
Tkinter的GUI设计 和 django页面设计,那么笔者只是想快速做个demo原型,以上的内容能不能结合着来,有一些简单的交互 + web可以快速访问的到,于是就看到了jupyter notebook这两个库,非常简单的玩具,来看看呗~ ipywidgets比较强调输入项的各式花样,但是其对输出内容的格式的花样非常少。
悟乙己
2019/05/27
3.1K0
Jupyter Notebook已出现“返祖现象”,这款工具让你在终端里使用它
Jupyter Notebook,一般都是在网页上使用,可是你想过它有一天也可以在命令行中运行吗?
量子位
2021/05/11
7350
Jupyter Notebook已出现“返祖现象”,这款工具让你在终端里使用它
新编辑神器,可以在终端运行 Jupyter Notebook 了!
在我初学Python的时候,一直惯用着安装式的编辑器软件,比如PyCharm和Spyder。并且,一直以为编辑器都是这种形式的,有的区别只是体验和功能上的差异。
Python数据科学
2021/05/11
1.7K0
Python使用matplotlib画动态图
机器学习需要使用python实现相应的算法,因此学习了Matplotlib中的画图。
里克贝斯
2021/05/21
3.9K0
Python使用matplotlib画动态图
Python+matplotlib绘制动态更新的柱状图
问题描述:编写程序,生成测试数据,绘制水平柱状图,然后每隔0.5秒更新一次数据并实时根据最新数据绘制水平柱状图。
Python小屋屋主
2019/05/07
4.8K0
Python+matplotlib绘制动态更新的柱状图
新编辑神器,可以在终端运行 Jupyter Notebook 了!
在我初学Python的时候,一直惯用着安装式的编辑器软件,比如PyCharm和Spyder。并且,一直以为编辑器都是这种形式的,有的区别只是体验和功能上的差异。
崔庆才
2021/05/17
1.8K0
新编辑神器,可以在终端运行 Jupyter Notebook 了!
matplotlib 饼图
饼图用来显示展示数据的比例分布特征。matplotlib 中 使用 pie() 函数来绘制饼图。
用户6021899
2019/08/14
1.7K0
matplotlib 雷达图/蛛网图
第一个例子来自matplotlib官网,封装比较多,看起来有点复杂,但本质上是在极坐标系下画封闭的曲线图。
用户6021899
2019/08/14
2.1K0
使用交互组件(ipywidgets)“盘活”Jupyter Notebook(上)
传统上,每次需要修改笔记本单元格的输出时,都需要更改代码并重新运行受影响的单元格。这可能很繁琐、低效甚至容易出错,对于非技术用户来说,甚至是不切实际的。这就是ipywidgets发挥作用的地方:它们可以嵌入到笔记本中,并提供一个用户友好的界面来收集用户输入并查看更改对数据/结果的影响,而不必与代码交互;你的笔记本可以从静态文档转换为动态仪表盘——非常适合显示你的数据故事!
AiTechYun
2019/05/15
13.9K1
使用交互组件(ipywidgets)“盘活”Jupyter Notebook(上)
使用Matplotlib & Cartopy绘制我国台风路径图
之前在公众号做过一个关于我国1945~2015年历史台风统计的可视化展示,发现很多有趣的数据,比如说台风登陆最多的城市是湛江。
派大星的数据屋
2022/04/03
3.1K1
使用Matplotlib & Cartopy绘制我国台风路径图
matplotlib 误差棒图
matplotlib中使用errorbar()绘制误差棒图来表示被测量的误差范围。
用户6021899
2019/08/14
2K0
一图搞定Matplotlib!
今天给大家分享一位GitHub大神制作的Matplotlib cheat sheet,直接看图⬇️
统计学家
2020/05/20
4330
一图搞定Matplotlib!
【Python进阶】带你使用Matplotlib进行可视化
欢迎来到专栏《Python进阶》。在这个专栏中,我们会讲述Python的各种进阶操作,包括Python对文件、数据的处理,Python各种好用的库如NumPy、Scipy、Matplotlib、Pandas的使用等等。我们的初心就是带大家更好的掌握Python这门语言,让它能为我所用。
用户1508658
2019/08/06
1.3K0
matplotlib 常用图绘制
通过做图表来分析数据实在是一个非常棒的方法,由于我偶尔忘记语法,还得翻之前的笔记,难受。下面就画了些常用的图,记一记,记一记。
AngelNH
2020/04/16
9140
Matplotlib 气球图 制作
Matplotlib 制作稍带“艺术”的可视化作品,ggplot2 基于其优秀绘图图层设置及多种拓展绘图包可以较为灵活的完成此类任务,但Matplotlib也不是完全不可以,本期推文用python经典的绘图包Matplotlib进行“气球”图(通过图形合理搭配实现)的绘制,主要涉及Matplotlib 散点图(sactter())及 线 vlines()、mlines()及PatchCollection()等的灵活应用。上期推文预告的效果图在文末的代码链接(notebook)中 也会有绘制方法,本期推文为完善版本
DataCharm
2021/02/22
2.1K0
Matplotlib 气球图 制作
matplotlib基础:使用GridSpec自定义子图
指定绘制子图的网格形状,同时要设置绘制子图的行列数。当然也可以调整子图的布局(如 left,right等)。
bugsuse
2020/04/21
4.5K0
matplotlib基础:使用GridSpec自定义子图
你知道Jupyter notebook还可以用来做 “视频聊天室” 吗?
Ipywidgets在Jupyter生态系统中扮演着重要角色,它带来了用户和数据之间的互动。小工具组件是多种的Python对象,通常在Jupyter Notebook或JupyterLab中具有可视化表示:按钮,滑块,文本输入,复选框等。
Python数据科学
2018/12/17
2.1K0
你知道Jupyter notebook还可以用来做 “视频聊天室” 吗?
python matplotlib 动态图_matplotlib怎么读
默认情况下,在pycharm中用matplotlib绘制的图形在窗口内,是静态的:
全栈程序员站长
2022/09/27
1K0
python matplotlib 动态图_matplotlib怎么读
手把手教你使用Matplotlib绘制动图
本帖我们目的只有一个,复现下面视频展示的内容,即中国(上证)和美国(标普 500)2016 年 3 月到 2020 年 4 月的故事走势对比。先点开视频看一看,配着 Fort Minor 的 Remember the Name 的前奏真带感。
石晓文
2020/04/18
1.7K0

相似问题

未显示滑块(ipywidgets)

163

使用matplotlib中的滑块更新条形图

07

Python Matplotlib滑块小部件未更新

11

当滑块更新matplotlib时,图不刷新

116

让ipywidgets更新folium热图?

131
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档