【问题标题】:Temasys howto alter existing codeTemasys 如何更改现有代码
【发布时间】:2023-03-03 18:55:02
【问题描述】:

我有这段代码,它最终将约束传递给 getUserMedia。

function captureUserMedia(callback) {
$('#videoSource').css('display', 'none');
var videoSource = videoSelect.value;
var constraints = null;

constraints = {
    video: {

        optional: [{
            sourceId: videoSource
        }]
    },
    audio: false
}


var htmlElement = document.getElementById('rtcvideo');
htmlElement.setAttribute('autoplay', true);
htmlElement.setAttribute('controls', true);

var mediaConfig = {
    video: htmlElement,
    onsuccess: function(stream) {
        config.attachStream = stream;
        callback && callback();
        htmlElement.setAttribute('muted', true);
        rotateInCircle(htmlElement);
    },


    onerror: function() {
        alert('unable to get access to your webcam');
    }
};
if (constraints) mediaConfig.constraints = constraints;
getUserMedia(mediaConfig);
streamAttached = true;
}

我已经尝试了很多方法来让它工作,困难可能在于我发现很难理解的回调。 我怎样才能改变这段代码,让它工作? 我试图在 getUsermedia 之前使用导航器,但它需要 3 个参数,其中两个是成功和错误回调。 我可以在 mediaconfig var 中看到 onerror 和 onsucces 回调。 有人可以看看吗?

更新

我刚刚看到 getUserMedia 是一个在附加的 RTCPeerConnection-v1.5.js 文件中定义的函数:

function getUserMedia(options) {
var n = navigator,
    media;
n.getMedia = n.webkitGetUserMedia || n.mozGetUserMedia;
n.getMedia(options.constraints || {
        audio: true,
        video: video_constraints
    }, streaming, options.onerror || function(e) {
        console.error(e);
    });

function streaming(stream) {
    var video = options.video;
    if (video) {
        video[moz ? 'mozSrcObject' : 'src'] = moz ? stream : window.URL.createObjectURL(stream);
        video.play();
    }
    options.onsuccess && options.onsuccess(stream);
    media = stream;
}

return media;
}

【问题讨论】:

    标签: javascript webrtc polyfills


    【解决方案1】:

    我假设你有更多的代码。 (videoSelect.value 不适用于未定义的 videoSelect)

    如果您选中 the spec,则约束和回调是 3 个单独的参数。 它应该看起来像:

    getUserMedia(mediaConfig.constraints, mediaConfig.onsuccess, mediaConfig.onerror);
    

    希望对你有帮助。

    【讨论】:

    • 我刚刚更新了问题。我不知道 getUserMedia 被定义为附加的 js 文件中的函数。不是保留字吗?但也许现在更清楚了?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 2023-04-04
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多