2017-04-26 13 views
0

필자는 AddPipe라고하는 삽입 가능한 VideoRecorder를 사용하고있었습니다. https://addpipe.com/docs#javascript-control-api. 지난 몇 달 동안 나는이로드되면 레코더의 시작을 자동화하기 위해 아래의 기능을 사용하고 있습니다 :Javascript에서 함수가 true를 반환하는지 확인하는 방법은 무엇입니까?

function onRecorderReady(recorderId) { 

    document.VideoRecorder.record(); 

} 

이 기능은 무작위로 작동이 중지. 이 문서에서는 record() 메서드를 사용하기 전에 embed이 onCamAccess() 및 onFlashReady()를 반환하는지 확인합니다. 나는 이것을 반영하기 위해 코드를 변경하려하지만 오류가 점점 오전 :

[Error] TypeError: undefined is not an object (evaluating 'document.VideoRecorder.record') 
Global Code (Example:78) 

나는이 오류가 왔을 때 내가 사용하는 코드 : 나는이 문서에서 이것을 발견

<script> 

function onCamAccess(allowed, recorderId) { 

    return true;  

} 



function onFlashReady(recorderId) { 

    return true; 

} 

if (onCamAccess()) { 

    if (onFlashReady()) { 

     document.VideoRecorder.record(); 

    } 


} 

</script> 
+0

안녕하세요, 아마도 VideoRecorder 객체가 준비 될 때까지 호출을 연기 할 수 있습니다. 스크립트로드가 문제가 될 때까지 준비가 될 때까지 null을 확인하십시오. –

답변

0

을 :

function onCamAccess(allowed, recorderId) { 
    document.VideoRecorder.record(); 
} 
:

onFlashReady(recorderId);
This function is deprecated

아마 다음과 같은 코드를 시도 할 수


편집 : 시도해주세요.

(function() { 
    function onRecorderReady(recorderId) { 
    document.VideoRecorder.record(); 
    } 
})(); 
+0

나는 이것을 시도했다. 방금 발견 한 해결책은 1 초의 타임 아웃 기능을 설정하는 것이 었는데, 이것은 이전에는 필요하지 않았기 때문에 이상했다. –

+0

@ChaceMcguyer : 내 대답을 수정했습니다. 그것은 당신을 위해 작동하는지 말해 ... :) – Badacadabra

+0

아니 여전히 작동하지 않습니다. 문제는 onRecorderReady가'onCamAccess()'가 레코더에 의해 호출되고 true를 리턴하는 것을 보장하지 않는다는 것입니다. 카메라 접근은'onRecorderReady()'이벤트가 발생한 후 약 500 밀리 초가 주어진다. 그래서 이것을 설명하기 위해'.record()'메소드를 연기해야했습니다. 여기서 뭘 하려던거야? –

0

해결책은 .record() 메소드에 대한 시간 초과 기능을 설정하는 것이 었습니다.

function onRecorderReady(recorderId) { 

setTimeout(function() {document.VideoRecorder.record();}, 1000) 

}