我想在 UIWebview 中显示视频。当我们单击视频时,它会在设备全屏中播放。
我们如何在 UIWebview 中播放视频?请注意,这些视频文件托管在 youtube 或我们的服务器上。它们没有与应用程序捆绑在一起
我认为你应该试试这个UIWebView
类的属性。
一个布尔值,用于确定 HTML5 视频是内联播放还是使用本机全屏控制器。
我有同样的要求,在 UIWebView 内播放视频。此外,我需要立即播放视频,而无需等待用户按下播放按钮。
为此,我将此属性添加到 UIWebView:
webView.allowsInlineMediaPlayback = YES;
然后,还需要在提供视频源 URL 的网页上的 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]];
要在下面的代码中播放视频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];