iPhoneまたはAndroidでHTML5を使用するネイティブフルスクリーンビデオプレーヤーを回避できますか?


130

HTML5タグと、実行中のビデオと同期した他のコンテンツをレンダリングするJavaScriptコードを使用するWebアプリを作成しました。デスクトップブラウザー(Firefox、Chrome、Safari)でうまく機能します。iPhoneまたはDroidXでは、ネイティブビデオプレーヤーがポップアップして画面を引き継ぐため、ビデオと同時に表示したい他の動的コンテンツが見えなくなります。

これを回避する方法はありますか?必要に応じて、両方のプラットフォーム用のネイティブアプリを作成する方法を説明しますが、HTML5 / JavaScriptをそのまま使用できれば、多くの労力を節約できます。


1
実際、iOSとAndroidの両方でのA / Vプレーヤーのブラウザー実装は、地獄のようにバグがあります。ページで複数のプレイヤーを試すか、スタイリッシュなコントロールを追加してみてください。使用できません。そのため、おそらくビデオを再生するための外部フルスクリーンアプリ-それほど悪くありません;)
tuxSlayer '26 / 07/26

1
Appleデバイスがコンテンツを意図した方法でレンダリングするたびに満足しています。私はそれを祝うために使用します。
アンデルスリンデン2015年

技術的にはありませんが、iphone-inline-video(開示:私が書いたもの)のような、それを可能にするいくつかのライブラリが利用可能です
fregante

回答:


74

iOS 10以降

Apple playsinlineはiOS 10のすべてのブラウザーでこの属性を有効にしたため、これはシームレスに機能します。

<video src="file.mp4" playsinline>

iOS 8およびiOS 9の場合

短い答え:iphone-inline-videoを使用すると、インライン再生が可能になり、オーディオが同期されます。

長い答え:この問題は、実際に再生するのではなく、ビデオを流すことで再生をシミュレートすることで回避でき.play()ます。


キャプティブネットワークアシスタント(キャプティブポータル)では機能しません
Dominik Vogt 2017

54

iOS Webブラウザーでのラインメディア再生を有効/無効にするプロパティがあります(ネイティブアプリを作成している場合allowsInlineMediaPlaybackは、UIWebViewのプロパティになります)。iPhoneではデフォルトでに設定されてNOいますが、iPadではに設定されていYESます。

幸いにも、この動作をHTMLで次のように調整できます。

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

...うまくいけば、あなたのためにそれを整理するはずです。お使いのAndroidデバイスで動作するかどうかはわかりません。これはwebkitプロパティなので、そうかもしれません。とにかく、行く価値があります。


25
提案をありがとう。残念ながら、私が見ている動作は変わりませんでした。フルスクリーンのネイティブビデオプレーヤーがiPhoneとDroidXの両方でポップアップします。
AlpineCarver

5
私もこの問題を抱えています。私はwebkit-playsinlineを追加し、webkit-playsinline = "webkit-playsinline"のxml検証済みバージョンも追加しましたが、動作は変更されません
mike clagg

7
Webビューではインラインビデオの再生が許可されていないため、これはSafari for iPhoneでは機能しない場合があります。ただし、Webページが独自のアプリ内の独自のUIWebView内でホストされている場合、これらのプロパティを設定すると、インラインビデオ再生が可能になります。webview.allowsInlineMediaPlayback = YES; webview.mediaPlaybackRequiresUserAction = NO;
Willster、

14
これはCordova / PhoneGapでも機能します。ただ、コルドバプロジェクトのあなたのconfig.xmlに以下を追加します<preference name="AllowInlineMediaPlayback" value="true" />
ミスターTA

3
<preference name = "AllowInlineMediaPlayback" value = "true" />よかったです。それは私のiPhoneで正常に動作します。どうもありがとう。
sirius2013 2016年

41

古い回答(2016年まで適用可能)

これは明示的にそれを言うApple開発者リンクです-

小さな画面のデバイスであるiPhoneおよびiPod touchでは、「ビデオはWebページ内に表示されません

Safariデバイス固有の考慮事項

あなたのオプション

  • このwebkit-playsinline属性はiOSのHTML5ビデオで機能しますが、Webページをホーム画面にWebアプリとして保存した場合のみ-Safariでページを開いた場合は機能しません
  • WebViewを備えたネイティブアプリ(またはHTML、CSS、JSを備えたハイブリッドアプリ)UIWebViewでは、クラスのプロパティをtrueに設定したallowsInlineMediaPlayback場合にのみ、ビデオをインラインで再生できUIWebViewます

1
承認された回答に対する私のコメントを参照してください。ICYMIは、コルドバのために、あなたのconfig.xmlに以下を追加します:<preference name="AllowInlineMediaPlayback" value="true" />
氏TA

YouTube.comでは、全画面表示なしで再生されます
アンソニー

答えは古く、2014年であり、状況は変わった可能性があります。また、回答に記載されているように、youtube.comはWebView備えたネイティブアプリではありません。気づいてくれてありがとう。
キングジュリアン


11

このページhttps://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/Attributes.htmlによる と、(allowsInlineMediaPlaybackプロパティがYESに設定されているUIWebViewでのみ有効化されている場合) )Mobile Safariでは、これはiPadではYES、iPhoneおよびiPod TouchではNOであることを理解しています。


4
これは、HTML5プレーヤーページを設定して、ネイティブiOSアプリの「内部に存在する」場合にのみ機能するようです。それは確かに普通のWebページでは機能しません。
natlee75

9

Androidについては知りませんが、iPhoneまたはiPod touchのSafariは、画面サイズが小さいため、すべてのビデオをフルスクリーンで再生します。iPadでは、ページ上のビデオを再生しますが、ユーザーはフルスクリーンにすることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.