我正在尝试使用 ReactJS 创建一个录音机应用程序。我使用 npm 包react-mic来达到目的。但是录音被保存为一个blob对象。
如何在浏览器中播放录制的文件(blob 对象)?以及如何将其作为音频文件上传到在线存储?(如火力基地)
我正在尝试使用 ReactJS 创建一个录音机应用程序。我使用 npm 包react-mic来达到目的。但是录音被保存为一个blob对象。
如何在浏览器中播放录制的文件(blob 对象)?以及如何将其作为音频文件上传到在线存储?(如火力基地)
你可以尝试使用这个: https://www.npmjs.com/package/react-player
从文档:
class App extends Component {
render () {
return <ReactPlayer url='<--YOUR BLOB -->' playing />
}
}
可以在此处找到更详细的示例- 虽然没有经过测试,因为我必须将您的项目连接起来。但是看看你的 blob mime 类型,它是 webm,这个库支持。
重要的部分是 blobUrl。有了它,您可以创建一个音频元素。(这是其他图书馆所做的)。
例如,在 React Mic 的 handleStop() 中,您可以在您的 state 中设置该网址:
const handleStop = (recordedBlob) => {
const url = URL.createObjectURL(recordedBlob.blob);
setSrc(url) //setting the url in your state. A hook in this case btw
}
然后您可以在组件中创建其他函数/方法并创建/播放音频对象:
const handlePlay = () => {
const tmp = new Audio(src); //passing your state (hook)
tmp.play() //simple play of an audio element.
}
你也可以在你的状态下保存音频对象......无论如何,这是一个关于 javascript/html 的主题,而不是 react 或 React-mic
如果你想使用 npm 库,我可以推荐你react-h5-audio-player,它更友好。