IPhoneを使用してWebビューでビデオを再生すると、このビデオはネイティブプレーヤーでフルスクリーンで開かれます。
「allowsInlineMediaPlayback」プロパティをtrueに設定してUIWebViewとWKWebViewを試しました。しかし、Webコンテンツのビデオは、iPhone iOS 10.2でフルスクリーンで起動します。あなたと私ができることを考えていますか?
let webConfiguration = WKWebViewConfiguration()
// Fix Fullscreen mode for video and autoplay
webConfiguration.preferences.javaScriptEnabled = true
webConfiguration.mediaPlaybackRequiresUserAction = false
webConfiguration.allowsInlineMediaPlayback = true
webView = WKWebView(frame: CGRect(x: 0, y: 0, width:self.backgroundView.frame.width, height:self.backgroundView.frame.height), configuration: webConfiguration)
Env:Xcode 8、Swift 3
コードに問題はありませんが、もう1つの手順が必要です。使用するビデオURL
は常にパラメーターplaysinline=1
。
//step1
if let videoURL:URL = URL(string: "https://somevideo.mp4?playsinline=1")
//step2
webConfiguration.allowsInlineMediaPlayback = true
その後、あなたは左の事をすることができます。
ここにあなたが望む解決策があります、私はプレーヤーをプログラムで作り、いくつかのコードを変更して、ビデオをオンラインで再生します。
var myPlayer: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let webConfiguration = WKWebViewConfiguration()
webConfiguration.allowsInlineMediaPlayback = true
webConfiguration.mediaTypesRequiringUserActionForPlayback = []
myPlayer = WKWebView(frame: CGRect(x: 0, y: 0, width: 375, height: 300), configuration: webConfiguration)
self.view.addSubview(myPlayer)
if let videoURL:URL = URL(string: "https://www.youtube.com/embed/9n1e1N0Sa9k?playsinline=1") {
let request:URLRequest = URLRequest(url: videoURL)
myPlayer.load(request)
}
//OR to show player control also, use this
/*if let videoURL:URL = URL(string: "https://www.youtube.com/embed/9n1e1N0Sa9k?playsinline=1&controls:1") {
let request:URLRequest = URLRequest(url: videoURL)
myPlayer.load(request)
}*/
}
私はそうしました:
func load(url: String) {
let html = "<video playsinline controls width=\"100%\" src=\"\(url)\"> </video>"
self.webView.loadHTMLString(html, baseURL: nil)
}
WebビューをHTMLとしてロードし、ビデオタグを追加してUXをカスタマイズします。
HTML文字列を必要とせずにそれを行うための最良の方法は次のとおりです。また、archive.orgでホストされるテストビデオを追加して、大金バニーのテストビデオホラーショーを回避できるようにしました。
スウィフト4:
if let mediaURL:URL = URL(string: "https://ia800307.us.archive.org/14/items/electricsheep-flock-244-32500-9/00244%3D32649%3D22645%3D23652_512kb.mp4") {
let request:URLRequest = URLRequest(url: mediaURL);
self.webView.load(request)
}
Obj-C:
NSURL *mediaURL = [NSURL URLWithString:@"https://ia800307.us.archive.org/14/items/electricsheep-flock-244-32500-9/00244%3D32649%3D22645%3D23652_512kb.mp4"];
NSURLRequest *request = [NSURLRequest requestWithURL:mediaURL]
[self.webView loadRequest:request];
これは私のために働いた:
let configuration = WKWebViewConfiguration()
if #available(iOS 10.0, *) {
configuration.mediaTypesRequiringUserActionForPlayback = []
}
configuration.allowsInlineMediaPlayback = true
let webView = WKWebView(frame: frame, configuration: configuration)