Javascript Mediarecorder:如何支持Safari上的音频录制,即11? 问题陈述
您好,我想在我的应用程序中为IE 11和Safari添加对使用Javascript Mediarecorder:如何支持Safari上的音频录制,即11? 问题陈述,javascript,html,reactjs,redux,web-mediarecorder,Javascript,Html,Reactjs,Redux,Web Mediarecorder,您好,我想在我的应用程序中为IE 11和Safari添加对使用MediaRecorderAPI进行音频录制的支持,但到目前为止还没有找到任何支持。是否有polyfills可以帮助我在这些浏览器中添加对相同内容的支持 游猎: 我可以看到,Safari确实有MediaRecorderAPI在experimental功能下受支持,但即使这样,尽管提供了正确的mime类型audio/webm,它仍然会返回一个video/mp4mime类型的blob IE 11: 这是一块古老的垃圾,我只能说:) 代码:
MediaRecorder
API进行音频录制的支持,但到目前为止还没有找到任何支持。是否有polyfills可以帮助我在这些浏览器中添加对相同内容的支持
游猎:
我可以看到,Safari确实有MediaRecorder
API在experimental功能下受支持,但即使这样,尽管提供了正确的mime类型audio/webm
,它仍然会返回一个video/mp4
mime类型的blob
IE 11:
这是一块古老的垃圾,我只能说:)
代码:
注意:请不要要求放弃这些浏览器,因为它们是我的要求:)Safari支持:
通过使用音频记录器Polyfill,我能够在Safari中添加对MediaRecorder
API的支持。您可以检查此NPM包
步骤(反应JS):
MediaRecorder
API的浏览器加载polyfillconst stream = await navigator.mediaDevices.getUserMedia({
audio: true,
video: false,
})
const mimeType = 'audio/webm'
// check if above mime type is supported in browser and instantiate recorder
if (MediaRecorder.isTypeSupported(mimeType)) {
this.recorder = new MediaRecorder(this.stream, { mimeType })
} else {
this.recorder = new MediaRecorder(this.stream)
}
recorder.start()
<script>
// load this bundle only for browsers without MediaRecorder support
if (!window.MediaRecorder) {
document.write(
decodeURI('%3Cscript defer src="/polyfill.js">%3C/script>')
)
}
</script>
import AudioRecorder from 'audio-recorder-polyfill'
window.MediaRecorder = AudioRecorder
declare module 'audio-recorder-polyfill'