iPhone 또는 Android에서 HTML5를 사용하는 기본 전체 화면 비디오 플레이어를 피할 수 있습니까?


130

다른 콘텐츠를 실행중인 비디오와 동기화하는 HTML5 태그 및 JavaScript 코드를 사용하는 웹앱을 만들었습니다. Firefox, Chrome 및 Safari와 같은 데스크탑 브라우저에서 잘 작동합니다. iPhone 또는 DroidX에서 기본 비디오 플레이어가 팝업되어 화면을 차지하므로 비디오와 동시에 표시하려는 다른 동적 컨텐츠가 가려집니다.

이 주위에 어떤 방법이 있습니까? 필요한 경우 두 플랫폼 모두에 기본 앱을 작성하는 방법을 알아낼 것이지만 HTML5 / JavaScript 만 사용하면 많은 노력을 절약 할 수 있습니다.


1
실제로 iOS 및 Android에서 A / V 플레이어의 브라우저 구현은 지옥과 같은 버그입니다. 페이지에서 여러 플레이어를 시도하거나 멋진 컨트롤을 추가하면 사용할 수 없습니다. 그래서, 재생 비디오 아마 외부 전체 화면 애플 리케이션 - 그렇게 나쁘지 않다)
tuxSlayer

1
애플 디바이스가 의도 한 방식으로 컨텐츠를 렌더링 할 때마다 기쁘다. 나는 그것을 축하하기 위해 사용합니다.
Anders Lindén

기술적으로 아니요, 그러나 iphone-inline-video 와 같은 가능한 몇 가지 라이브러리가 있습니다 (공개 : 내가 썼습니다)
fregante

답변:


74

iOS 10 이상에서

Apple playsinline은 iOS 10의 모든 브라우저에서 속성 을 사용하도록 설정 했기 때문에 원활하게 작동합니다.

<video src="file.mp4" playsinline>

iOS 8 및 iOS 9에서

짧은 답변 : 사용 아이폰 인라인 비디오는 , 그것은 인라인 재생 및 동기화 오디오를 할 수 있습니다.

긴 대답 : 비디오를 실제로 표시하지 않고 감추어 재생을 시뮬레이션하여이 문제를 해결할 수 있습니다 .play().


Captive Network Assistant (Captive Portal)에서는 작동하지 않습니다
Dominik Vogt

54

iOS 웹 브라우저에서 라인 미디어 재생을 활성화 / 비활성화하는 속성이 있습니다 (기본 앱을 작성하는 경우 allowsInlineMediaPlaybackUIWebView 의 속성 임). iPhone에서는 기본적으로 이로 설정되어 NO있지만 iPad에서는로 설정되어 YES있습니다.

다행히도 다음과 같이 HTML에서이 동작을 조정할 수 있습니다.

<video id="myVideo" width="280" height="140" webkit-playsinline>

희망적으로 당신을 위해 그것을 정리해야합니다. Android 기기에서 작동하는지 모르겠습니다. 웹킷 속성이므로 그렇게 할 수 있습니다. 어쨌든 갈만한 가치가 있습니다.


25
제안 해 주셔서 감사합니다. 불행히도, 그것은 내가보고있는 행동을 바꾸지 않았습니다. 풀 스크린 네이티브 비디오 플레이어는 iPhone과 DroidX에 나타납니다.
AlpineCarver

5
이 문제도 있습니다. 나는 webkit-playsinline과 심지어 webkit-playsinline = "webkit-playsinline"의 xml로 검증 된 버전을 추가했지만, 동작을 변경하지는 않습니다
mike clagg

7
웹보기에서 인라인 비디오 재생을 허용하지 않으므로 iPhone 용 Safari에서 작동하지 않을 수 있습니다. 그러나 웹 페이지가 자체 앱의 고유 한 UIWebView 내에서 호스팅되는 경우 이러한 속성을 설정할 수 있으며 인라인 비디오 재생이 가능합니다. webview.allowsInlineMediaPlayback = YES; webview.mediaPlaybackRequiresUserAction = 아니요;
Willster

14
이것은 Cordova / PhoneGap에서도 작동합니다. Cordova 프로젝트의 config.xml에 다음을 추가하십시오.<preference name="AllowInlineMediaPlayback" value="true" />
Mr. TA

3
<preference name = "AllowInlineMediaPlayback"value = "true"/> 좋아요!. 내 아이폰에서 잘 작동합니다. 고마워
sirius2013

41

기존 답변 (2016 년까지 해당)

여기에 애플 개발자 링크는 것을의 명시는 것을 말한다 -

작은 화면 장치 인 iPhone 및 iPod touch에서 " 웹 페이지에 비디오가 표시 되지 않습니다 "

Safari 장치 별 고려 사항

귀하의 옵션 :

  • webkit-playsinline속성은 iOS의 HTML5 비디오에서 작동하지만 웹 페이지를 웹앱으로 웹앱으로 저장하는 경우에만 작동합니다 -Safari에서 페이지를 열지 않은 경우
  • 웹뷰 네이티브 응용 프로그램 (또는 HTML, CSS, JS와 하이브리드 응용 프로그램)의 경우는 UIWebView만하면되지만, 비디오 인라인을 재생할 수 설정된 allowsInlineMediaPlayback속성을 에 대해 UIWebViewtrue로 클래스

1
허용 된 답변에 대한 내 의견을 참조하십시오. Cordova의 ICYMI는 config.xml에 다음을 추가하십시오.<preference name="AllowInlineMediaPlayback" value="true" />
Mr. TA

YouTube.com에서는 전체 화면으로 가지 않아도 재생됩니다.
Anthony

그 대답은 2014 년에 낡았으며 상황이 바뀔 수 있습니다. 또한 youtube.com은 답변에서 언급 한 것처럼 WebView 가 포함 된 기본 앱 이 아닙니다 . 그래도 감사합니다.
KingJulian


11

이 페이지 ( https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/Attributes.html) 에 따르면 (allowInlineMediaPlayback 속성이 YES로 설정된 UIWebView에서만 활성화 됨)에만 사용할 수 있습니다. ) Mobile Safari에서는 iPad에서는 YES이고 iPhone 및 iPod Touch에서는 NO입니다.


4
HTML5 플레이어 페이지를 기본 iOS 앱에 '내부에'설치하도록 설정 한 경우에만 작동하는 것 같습니다. 분명히 평범한 웹 페이지에서는 작동하지 않습니다.
natlee75

9

안드로이드에 대해서는 모르겠지만 작은 화면 크기 때문에 iPhone 또는 iPod touch의 Safari가 모든 비디오를 전체 화면으로 재생합니다. iPad에서는 비디오를 페이지에서 재생하지만 사용자가 전체 화면으로 만들 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.