UIWebview内に動画を表示したい。ビデオをクリックすると、デバイスのフルスクリーンで再生されます。
UIWebview 内でビデオを再生するにはどうすればよいですか? これらのビデオ ファイルは、YouTube または当社のサーバーでホストされていることに注意してください。それらはアプリと一緒にバンドルされていません
UIWebView
クラスのこのプロパティを試してみるべきだと思います。
HTML5 ビデオをインラインで再生するか、ネイティブのフルスクリーン コントローラーを使用するかを決定するブール値。
UIWebView 内でビデオをインラインで再生するという同じ要件がありました。さらに、ユーザーが再生ボタンを押すのを待たずに、すぐにビデオを再生する必要がありました。
これを実現するために、このプロパティを UIWebView に追加しました。
webView.allowsInlineMediaPlayback = YES;
次に、組み合わせて、ビデオ ソース URL を提供する Web ページの HTML5 video 要素内に「webkit-playsinline」属性を追加する必要があります。
<video src="assets/myMovie.m4v" webkit-playsinline></video>
Apple ドキュメントを参照してください: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/index.html#//apple_ref/doc/uid/TP40006950-CH3-SW32
全画面表示の UIWebView を作成する完全な Obj-C の例を次に示します。これを UIViewController の viewDidLoad メソッドに追加します。
NSURL *websiteUrl = [NSURL URLWithString:@"http://example.com/myMovie.m4v"];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:websiteUrl];
UIWebView * webView = [[UIWebView alloc] init];
webView.allowsInlineMediaPlayback = YES;
webView.mediaPlaybackRequiresUserAction = NO;
webView.opaque = NO;
webView.backgroundColor = [UIColor clearColor];
[webView setTranslatesAutoresizingMaskIntoConstraints:NO];
[webView loadRequest:urlRequest];
[self.view addSubview:webView];
// Width constraint
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:webView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeWidth
multiplier:1
constant:0]];
// Height constraint
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:webView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeHeight
multiplier:1
constant:0]];
// Center horizontally
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:webView
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:0.0]];
// Center vertically
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:webView
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeCenterY
multiplier:1.0
constant:0.0]];
以下のコードで使用中のビデオを再生するにUIWebView
は....
NSString *strVedio = @"<video controls> <source src=\"YourVideo.mp4\"> </video>";
NSString *path = [[NSBundle mainBundle] pathForResource:@"YourVideo" ofType:@"mp4"];
[Webview loadHTMLString:strVedio baseURL:[NSURL fileURLWithPath:path]];
アップデート:
以下のコードを使用してUIWebView
、ビデオ URL からビデオを表示します...
NSString *embedHTML = @"\
<html><head>\
<style type=\"text/css\">\
body {\
background-color: transparent;
color: white;
}\
</style>\
</head><body style=\"margin:0\">\
<embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
width=\"%0.0f\" height=\"%0.0f\"></embed>\
</body></html>";
NSString *strHtml = [NSString stringWithFormat:embedHTML, yourURLString, width,height];//set width and height which you want
[webView loadHTMLString:strHtml baseURL:nil];
[self.view addSubview:webView];
小さな画面でのみ表示し、webview なしで表示する場合は、次のコードを使用します。
MPMoviePlayerController *videoPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:url]];
[player setControlStyle:MPMovieControlStyleNone];
player.view.frame = CGRectMake(0, 0, 150, 150);
[self.view addSubview:videoPlayer.view];