我想在UIWebview中显示视频。当我们点击视频时,它会在设备全屏播放。
我们如何在UIWebview中播放视频? 请注意,这些视频文件托管在youtube或我们的服务器上。他们没有与app
捆绑在一起答案 0 :(得分:4)
我认为你应该尝试UIWebView
类的这个属性。
一个布尔值,用于确定HTML5视频是否内联播放 使用原生全屏控制器。
答案 1 :(得分:3)
我有同样的要求,在UIWebView内部播放视频内联。此外,我需要立即播放视频,而无需等待用户按下播放按钮。
为此,我将此属性添加到UIWebView:
webView.allowsInlineMediaPlayback = YES;
然后,在组合中还需要添加" webkit-playsinline"属性包含在提供视频源URL的网页上的HTML5视频元素中。
<video src="assets/myMovie.m4v" webkit-playsinline></video>
这是我完整的Obj-C示例,用于创建全屏UIWebView。将其添加到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]];
答案 2 :(得分: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
视频网址中显示视频...
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];