IPadとブラウザーで完全に機能するHTML5ビデオプレーヤー(非常にシンプル)を作成しました。
ただし、iPhoneで開くと、再生ボタンが表示されるだけです。このボタンを押すと、すべてのものの上にある新しいウィンドウでネイティブビデオプレーヤーが開きます。
これは、ビデオが孤立して実行されているため、カスタムコントロールとタイムトラッキング(Javascriptで記述)にアクセスできなくなることを意味します。
IPhoneでHTML5ビデオのAppleの制御をオーバーライドし、iPadのように動作させる方法はありますか?
乾杯
右、
私はこれでどこにも行かず、Appleにバグを提出しました。
数週間後、彼らは私に、「webkit-playsinline」をHTMLのビデオタグに追加し、UIWebViewの「allowsInlineMediaPlayback」プロパティを追加する必要があると言ってきました。
したがって、最終的には次のようになります。
HTML
<video id="player" width="480" height="320" webkit-playsinline>
Obj-C
webview.allowsInlineMediaPlayback = YES;
そして、すべてがうまく動作します:)
実質的に文書化されておらず、「webkit-playsinline」への参照を見つけることができる唯一の場所は、「iAds JSのみ」と書かれているiAds参照にあるためです。
Appleは、iOS 10のすべてのブラウザーで属性playsinline
を有効にしたため、これはシームレスに機能します。
_<video src="file.mp4" playsinline>
_
実際に.play()
'ingする代わりに、ビデオをskimmingで再生をシミュレートすることで、この問題を回避できます。
iphone-inline-video を使用して、再生とオーディオ同期(存在する場合)を処理でき、_<video>
_が正常に機能し続けます。
IOS 10では、「playsinline」属性をHTML5ビデオタグに追加しても、「controls」属性を追加するまで、iPhone UIWebviewでのフルスクリーン再生が妨げられませんでした。これは私がそれを機能させた方法です:
<video width="100%" height="240" controls playsinline>
<source src="movie.mp4" type="video/mp4" >
</video>
もちろん、_webView.allowsInlineMediaPlayback=YES;
もViewControllerで。
アプリを作成していますか、それともモバイルサファリ向けですか?アプリがあり、UIWebViewを使用する場合は、UIWebViewのallowInlineMediaPlaybackプロパティを設定する必要があります。
Config.xmlに次を追加するだけです:<preference name="AllowInlineMediaPlayback" value="true" />
それ以外の場合、UIWebViewはwebkit-playsinline属性を無視します。
いくつかの回避策がありますが、私はこの機能を自動的に許可するライブラリに取り組んでいます。ただし、Appleがsafariを
webview.allowsInlineMediaPlayback = YES;
その後、同じ動作のためにハックを使用する必要があります。
ここでプロジェクトをチェックアウトできます。 https://github.com/newshorts/InlineVideo ニーズに合っているかどうかを確認します。