0

YouTube 플레이어를 자바 스크립트를 통해 전체 화면 모드로 만들 때 버그가 있습니다.YouTube 플레이어가 자바 스크립트를 통해 전체 화면으로 이동하기

thisVid = document.getElementById("ytIframe"); 

if (thisVid.requestFullscreen) { 
    thisVid.requestFullscreen(); 
} 
else if (thisVid.msRequestFullscreen) { 
    thisVid.msRequestFullscreen(); 
} 
else if (thisVid.mozRequestFullScreen) { 
    thisVid.mozRequestFullScreen(); 
} 
else if (thisVid.webkitRequestFullScreen) { 
    thisVid.webkitRequestFullScreen(); 
} 

을 (이것은 스택 오버플로가 here 응답 사용 :

나는 그것을 클릭 할 때 같은 시간에 다음과 같이 전체 화면으로 이동하려면 포함 된 iframe을 요청하면서, 그것의 YT.Player.playVideo() 방법을 트리거하는 버튼이 있습니다 및 here가)

iframe을 성공적으로 화면을 차지 오른쪽 하단에있는 전체 화면 버튼을 계속 사용할 수 있기 때문에, 그러나, YouTube 플레이어는 전체 화면 모드로 알고하지 않습니다 Fullscreen still available

"youtube.com 지금 전체 화면입니다"나는 그것을 클릭하면

, 그것은 전체 화면에 남아, 그것은 나에게 말한다 : 사용자가 전체 화면을 종료 할 수 있도록 버튼을 두 번 클릭해야하기 때문에 Now YouTube is fullscreen

이 문제입니다 방법. youtube 플레이어에게 iframe이 포함되도록 말하면서 전체 화면으로 전환하도록 지시하는 방법이 있습니까?

+0

컨트롤 버튼을 제거하는 것이 해결책이 될 수 있습니다. – mpgn

+0

나는하고 싶지만, 유일한 옵션은'controls : 0'이고, 이것은 볼륨, 재생/일시 정지, 검색 바를 제거한다. 모든 요소에 액세스하지 않고도 사용자를 떠날 수는 없습니다. – Marquizzo

+0

맞춤 재생 버튼/일시 중지/볼륨을 만들 수 있습니다. – mpgn

답변

3

YouTube 플레이어는 실제로 iFrame 내부에 존재하기 때문에 자바 스크립트 전체 화면 API를 사용하면 플레이어가 아닌 iframe 전체를 스크리닝합니다. 그래서 걱정거리는 풀 스크린이 아닙니다. 플레이어가 전체 화면 모드로 전환 할 수있게하는 유일한 방법은 사용자가 버튼을 수동으로 클릭하는 것입니다. 이는 iframe에 여전히 Flash Player가 포함될 수 있고 Flash에는 프로그램 전체 화면 보호를 방지하는 보안 조치가 포함되어 있으므로 기존 요구 사항입니다. 지금 당장 당신의 유일한 해결책은 사용자 정의 컨트롤 막대입니다 (그리고 플레이어를 전체 화면으로 검사하지는 않지만 그 컨테이너 만 ... 그러나 적어도 버튼의 기능을 제어 할 수는 있습니다).

+0

YouTube 플레이어가 전체 화면 모드임을 알지 못하도록합니다. YouTube는 사용자가 생성 한 클릭에 가깝기 만하면 API를 통해 전체 화면을 사용하도록 설정해야합니다. 보안이 중요하다면 비디오 컨트롤없이 iFrame을 완전히 검사하는 것과 똑같은 의미가 있습니다. – Marquizzo

+1

필자가 말했듯이 YouTube가 기존 Flash 플레이어를 버릴 수 있다면 걱정할 필요가 없으며 전체 화면 컨트롤을 javascript에 표시 할 수 있습니다. 그러나 데스크탑에는 항상 Flash Player가 iFrame에있을 기회가 있기 때문에 Flash 자체에는 전체 화면 보호에 대한 보안 문제가 있습니다 (기본적으로 브라우저는 사용자가 알고있는 경우를 제외하고 프로그래밍 방식으로 화면을 플러그인으로 포기할 수 없습니다. 그것을 시작했다), 이것은 우리가 다루어야 만하는 것이다. 플래시를 지원하지 않는 Android 및 iOS YouTube 플레이어 API에는 플레이어를 전체 화면 모드로 설정하는 방법이 있습니다. – jlmcdonald

+0

"브라우저는 프로그래밍 방식으로 사용자가 시작한 것을 알지 못하면 프로그래밍 방식으로 화면을 포기할 수 없습니다."사용자 초기화 (버튼)에서 가져와야합니다. 그리고 Flash는 javascript와 완전히 인터페이스 할 수 있습니다. (요즘 플래시가 터지지 않는 요일) –