2012-12-05 3 views
17

Chrome에서 navigator.getUserMedia를 사용하여 재생하려고합니다. 그러나 로컬로 서비스 할 때 (file : ///whatever/index.html) 권한을 요청하는 것이 아니라 JSFiddle (http://jsfiddle.net/EBsvq/) 및 다른 사이트에서 권한을 요청합니다.Chrome getUserMedia에서 로컬 권한 요청을 요청하지 않음

누구나 이유를 알고 있습니까? 어떻게 든 내 권한을 재설정해야합니까?

<html> 
<head></head> 
<body> 
    <button id="btn">Start</button> 

<script type="text/javascript"> 
    /*! jQuery v1.8.3 jquery.com | jquery.org/license */ 
    //JQuery goes here 
</script> 

<script type="text/javascript"> 
    navigator.getUserMedia = navigator.webkitGetUserMedia || navigator.getUserMedia; 

    $(function(){ 
    $('#btn').click(function(){ 
     navigator.getUserMedia({audio: true}, 
     function(){ 
     alert('success'); 
     }, 
     function (err) { 
     alert('fail: ' + JSON.stringify(err)); 
     }); }); }); 
     </script> 
    </body> 
</html> 

답변

19

크롬 블록 file:///의 URI에 물건을 많이 보안 오류 (예 : Geolocation를.)보고하지 않고 : 여기

내가 로컬로 사용하고 것입니다. 파이썬을 설치했다면 로컬 웹 서버에서 실행하는 것이 가장 좋습니다. SimpleHTTPServer을 시도하십시오.

+8

올바른지 : getUserMedia는 서버의 파일에서 실행될 때만 작동합니다. file : // URL에서는 작동하지 않습니다. PERMISSION_DENIED : 1 오류가 발생하지만 매우 직관적이지는 않습니다! –

+0

@SamDutton :보다 직관적 인 오류 메시지를 요청하는 버그 보고서를 제출했습니다. https://code.google.com/p/chromium/issues/detail?id=257104 – Gili

+0

@ 그리스 : 별표 첨부! –

14

로컬 파일 시스템에서 getUserMedia을 사용하려면 크롬을 열 때 명령 줄에서 --allow-file-access-from-files 플래그를 사용할 수 있습니다.

+0

로 이동하십시오 간단한 테스트를 위해 웹 서버를 설정하는 것보다 훨씬 빠릅니다 – MikeMurko

+0

시도했지만 보이지 않았습니다 일하다. Chrome 버전 48.0.2564.116을 사용하고 있습니다. – Moon

0

그런 다음, 당신이 나 같은 괴물이 있다면 그것은 보통이

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --allow-file-access-from-files 

모양을 OS X의에서 명령 줄 인자를 수행하고 ~/Applications에 응용 프로그램을 넣어하는 방법을 좀 아닌 사소한 그것은 당신의 크롬의 주소 표시 줄에

"/Users/yougohere/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --allow-file-access-from-files 

그 중 어느 것도 작업하는 경우, 다음 입력 chrome://version 될 것이며, 그것은 "명령 줄"호출이 사용되어야 하는지를 알려줍니다. 그냥 --allow-file-access-from-files을 추가하십시오. 이 설치되면 한 번 클릭 설치, 간단한 서버 (경량)를 설치

0

시도가 here

을 다운로드 할 수 있습니다 실행할 페이지로 응용 프로그램을 참조하십시오.

1

비슷한 문제가 발생했지만 마이크 액세스와 관련이 있습니다. file : //을 통해 파일을 제공하는 경우 Chrome이 기기 액세스를 차단합니다 (Microsoft Edge 및 Firefox에서는 file :: //를 통해 작동 함). 내가 크롬에 대한 발견했습니다

하나 개의 솔루션 :

  1. 개방 크롬의 URL 크롬의 유형 : // 버전/
  2. 는 명령 행에서 "명령 줄"필드의 값을 복사 추가 --allow-file-access-from-files 크롬을 연 다음 file : // url을 입력 한 후
  3. 을 실행하십시오.

Chrome을 항상 시작하려면 Chrome 아이콘을 마우스 오른쪽 버튼으로 클릭 한 다음 속성을 클릭하십시오. 바로 가기 탭에서 대상 값에 2의 모든 명령 줄 매개 변수를 추가하십시오.

+0

이것은 Chrome 50.0.2661.102에서 작동했습니다. –

관련 문제