为了账号安全,请及时绑定邮箱和手机立即绑定

媒体流录制仅在 iPhone Safari 上不起作用。我需要特别考虑什么吗?

媒体流录制仅在 iPhone Safari 上不起作用。我需要特别考虑什么吗?

翻翻过去那场雪 2021-10-07 10:22:05
我想使用 WebRTC 和github.io的脚本从智能手机摄像头录制视频(演示:https : //webrtc.github.io/samples/src/content/getusermedia/record/)。但是演示链接在 iPhone Safari 上不起作用。我也在这里尝试了源脚本这是记录演示的原始代码:'use strict';/* globals MediaRecorder */const mediaSource = new MediaSource();mediaSource.addEventListener('sourceopen', handleSourceOpen, false);let mediaRecorder;let recordedBlobs;let sourceBuffer;const errorMsgElement = document.querySelector('span#errorMsg');const recordedVideo = document.querySelector('video#recorded');const recordButton = document.querySelector('button#record');recordButton.addEventListener('click', () => {  if (recordButton.textContent === 'Start Recording') {    startRecording();  } else {    stopRecording();    recordButton.textContent = 'Start Recording';    playButton.disabled = false;    downloadButton.disabled = false;  }});const playButton = document.querySelector('button#play');playButton.addEventListener('click', () => {  const superBuffer = new Blob(recordedBlobs, {type: 'video/webm'});  recordedVideo.src = null;  recordedVideo.srcObject = null;  recordedVideo.src = window.URL.createObjectURL(superBuffer);  recordedVideo.controls = true;  recordedVideo.play();});const downloadButton = document.querySelector('button#download');downloadButton.addEventListener('click', () => {  const blob = new Blob(recordedBlobs, {type: 'video/webm'});  const url = window.URL.createObjectURL(blob);  const a = document.createElement('a');  a.style.display = 'none';  a.href = url;  a.download = 'test.webm';  document.body.appendChild(a);  a.click();  setTimeout(() => {    document.body.removeChild(a);    window.URL.revokeObjectURL(url);  }, 100);});function handleSourceOpen(event) {  console.log('MediaSource opened');  sourceBuffer = mediaSource.addSourceBuffer('video/webm; codecs="vp8"');  console.log('Source buffer: ', sourceBuffer);}function handleDataAvailable(event) {  if (event.data && event.data.size > 0) {    recordedBlobs.push(event.data);  }}我还测试脚本小提琴不同的智能手机。它显然只在 iPhone 上不起作用。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 225 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信