jsartoolkit因typeerror而失败:artoolkit.setup不是函数

时间:2017-09-26 16:01:05

标签: javascript android cordova jsartoolkit

我创建了一个cordova Android应用,用户可以点按链接并启动jsartoolkit。这一切都很好,但是如果我点击后退按钮然后再次打开链接,几次失败并出现错误:

  

" typeerror:artoolkit.setup不是函数"

当它尝试加载ARCameraParam (Data/camera_para.dat)时发生了这种情况 - 我尝试将其直接加载到arcontroller即var arController = new ARController(video, 'Data/camera_para.dat')并加载它,即arCamera = new ARCameraParam }。

这个错误表明 artoolkit.min.js 在几次之后没有加载,但我知道为什么会这样。 它不是缓存问题 - 如果我在发生应用缓存时将其清除然后重试,它仍然无法加载。它在我第一次安装应用程序时总是正常工作,如果我强制停止应用程序,这表明从前一个会话运行的进程我不知道。当我点击后退按钮但是没有修复它时,我试过在arcontroller和arcameraparam上调用dispose。

有谁知道jsartoolkit可能正在运行哪些进程可能导致这样的错误?非常感谢任何建议。 相关代码:

window.ARThreeOnLoad = function() {
    function gotStream(stream) {
        camvideo.src = window.URL.createObjectURL(stream);  
        nextBit(camvideo);
        track = stream.getVideoTracks()[0];

camvideo.onerror = function(e) 
{   stream.stop();   };

stream.onended = noStream;
}

function noStream(e) {
        alert("no stream " + e);
        var msg = 'No camera available.';
    if (e.code == 1) {   
        msg = 'User denied access to use camera.';   }
        document.getElementById('errorMessage').textContent = msg;
     }



   var camvideo = document.getElementById('monitor'); 

   var constraints = { video: {facingMode: {exact: "environment"}, width: 1280, height: 960} };

    navigator.mediaDevices.getUserMedia(constraints).then(gotStream).catch(noStream);


}


function nextBit(video) {
    var arController = new ARController(video, 'Data/camera_para.dat');
    arController.onload = function() {
           arController.image = video;

0 个答案:

没有答案