2017-04-26 5 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オブジェクトが準備ができるまで、呼び出しを延期することができます。スクリプトの読み込みに問題がある場合は、準備が整うまでヌルだけをチェックしてください。 –

答えて

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) 

} 
関連する問題