UIWebview内にビデオを表示したい。ビデオをクリックすると、デバイスの全画面で再生されます。
UIWebview内でビデオを再生するにはどうすればよいですか?これらのビデオファイルは、YouTubeまたは当社のサーバーでホストされていることに注意してください。それらはアプリと一緒にバンドルされていません
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]];
更新:
以下のコードを使用して、ビデオURLからUIWebView
にビデオを表示します。
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];
小さな画面のみでWebビューなしで表示する場合は、以下のコードを使用してください。
MPMoviePlayerController *videoPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:url]];
[player setControlStyle:MPMovieControlStyleNone];
player.view.frame = CGRectMake(0, 0, 150, 150);
[self.view addSubview:videoPlayer.view];
UIWebView
クラスのこのプロパティを試してみるべきだと思います。
HTML5ビデオをインラインで再生するか、ネイティブのフルスクリーンコントローラーを使用するかを決定するブール値。
UIWebView内でビデオをインラインで再生するという同じ要件がありました。さらに、ユーザーが再生ボタンを押すのを待たずに、すぐにビデオを再生する必要がありました。
これを実現するために、このプロパティをUIWebViewに追加しました。
webView.allowsInlineMediaPlayback = YES;
次に、組み合わせて、ビデオソースURLを提供しているWebページのHTML5ビデオ要素内に含まれる「webkit-playsinline」属性を追加する必要もあります。
<video src="assets/myMovie.m4v" webkit-playsinline></video>
これは、フルスクリーン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]];