2

我正在开发用于视频录制的 WebRtc 和 JavaScript 库 RecordRtc。目前两者都适用于 Chrom 和 Mozilla。使用另一个 javascript 库 adaper.js,我可以在 Internet Explorer 和 Safari 中使用navigator.getUserMedia() 。所以下面的代码正在检测输入设备,例如:所有浏览器中的内置摄像头。

<video id="video" autoplay="" loop="" controls="" muted=""></video>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="https://www.webrtc-experiment.com/RecordRTC.js"> </script>
<script type="text/javascript" src="https://cdn.temasys.com.sg/adapterjs/0.13.3/adapter.min.js"></script> 
<script type="text/javascript">
   var recorder;
   var video = document.getElementById('video');
   AdapterJS.webRTCReady(function(isUsingPlugin) {
        navigator.getUserMedia  = navigator.getUserMedia ||
            navigator.webkitGetUserMedia ||
            navigator.mozGetUserMedia ||
            navigator.msGetUserMedia;

    navigator.getUserMedia({ audio: true, video: true }, function(stream) {
        //console.log("hai");
        video.src = URL.createObjectURL(stream);

        video.width = 320;
        video.height = 240;

        var options = {
            type: 'video',
            video: {
                width: 320,
                height: 240
            },
            canvas: {
                width: 320,
                height: 240
            }
        };

        recorder = window.RecordRTC(stream, options);
        //console.log(recorder);
        recorder.startRecording();
    }});
   });
</script>

这在 Chrome 和 Mozilla 中运行良好,并且能够记录 blob。但在 IE 和 Safari 中检测到相机后显示一个错误,如下所示

排队

video.src = URL.createObjectURL(stream);

它正在显示

"No such interface supported"

任何人都可以提出任何解决方案或替代方案,非常感谢您的帮助,因为基本上我被卡住了。

4

2 回答 2

1

这是因为 IE 和 Safari 尚未在其最新的稳定公开版本中实现 WebRTC。

查看WebRTC 浏览器支持页面了解详细信息。

于 2016-04-29T11:15:30.693 回答
1

您可以使用 Temasys WebRTC 插件和 Adapter.js 来支持所有四种主要浏览器。尽管如前所述,Edge 目前不支持 WebRTC 视频流,但我们也对 ORTC 和 Edge 进行了填充。

Skylink.io,Temasys 的 PaaS 还提供私人测试版和应要求提供的记录和存档。GA 版本将在 2016 年第二季度晚些时候发布。

披露:我是 Temasys 的首席运营官和首席营销官。

于 2016-04-30T00:08:02.190 回答