首页 > 解决方案 > RecordRTC - 在 Safari 上播放录音失败

问题描述

我正在使用 RecordRTC 允许我的应用程序用户录制他们的视频并上传。这适用于 Chrome 和 Mozilla Firefox,但 Safari 无法播放录制的视频。我对此进行了研究,发现mimeType: 'video/webm\;codecs=vp8'可用于野生动物园。但是,这仍然不适用于 Safari 浏览器。(Mac OS X 和 iOS)

有人可以帮我吗?我有多个用户在不同的操作系统上工作并在不同的浏览器上工作,我想确保 RecordRTC 对所有用户都有效。

如果可以通过跨浏览器支持实现此功能,我愿意更改/切换到任何其他替代方案。

我找到了 Twilio,但我不确定 Twilio 是否支持独立录制?我的意思是我只想让单个用户在页面上录制视频并上传。

如果有帮助,请参阅下面我的 RecordRTC 配置:

const options = {
      type: 'video',
      mimeType: 'video/webm\;codecs=vp8',
      bitsPerSecond: 128000,
      timeSlice: 1000
    };

用户完成录制后,我将其转换为 blob 并将其附加到 formData 以将其保存到服务器:

var recordedBlob: Blob = recordRTC.getBlob();
formData.append('files', recordedBlob, this.courseComponent?.courseComponent?.name + '.webm');

这段录制的视频在 Chrome 和 Firefox 中播放良好,但在 Safari 中播放失败。如果你能指导我完成这件事,那将对我有很大帮助。谢谢。

以下是控制台日志快照:

1.浏览器不支持媒体记录器api

浏览器不支持媒体记录器 api

  1. 尝试播放录制的视频时

尝试播放录制的视频时

  1. 说浏览器不支持媒体记录器 api 并尝试使用 whammyRecorder

说浏览器不支持媒体记录器 api 并尝试使用 whammyRecorder

标签: macossafarivideo-recordingrecordrtc

解决方案


我认为您应该选择添加 recorderType

 const options = {
      type: 'video',
      mimeType: 'video/webm',
      recorderType: MediaStreamRecorder
    };

推荐阅读