如何在uiview或uiwebview上嵌入视频

时间:2010-08-31 03:30:34

标签: iphone

应用程序商店中有一些应用程序没有使用mpvideo的视频流,它们嵌入在uiview或uiwebview中。 这个实现是如何完成的?任何帮助都非常感谢。

4 个答案:

答案 0 :(得分:1)

可能使用标准HTML5 <video>标记。它允许您播放本地或远程视频文件。甚至是直播。查看Apple的Safari Dev Center了解所有详细信息。

答案 1 :(得分:1)

您可以尝试使用loadHTMLString将HTML代码加载到webview中:

该方法是UIWebView的一部分,看起来像这样:

[self.webview loadHTMLString:(NSString *)_some_string baseURL:nil]

您可以在_some_string变量中存储带有视频嵌入代码的基本html页面,它将使用嵌入代码加载该页面。

NSString *html = @"\
<html>\
    <head></head>\
    <embed code for video here>\
</body></html>";

[self.webView loadHTMLString:html baseURL:nil];

答案 2 :(得分:1)

由于Apple设置视频的方式,这是一个非常复杂的解决方案。

使用基本的HTML5视频播放器创建一个HTML文件,其中source =“video / you / want”。请务必在视频中添加 webkit-playsinline

<video  width=“320” height=“240” webkit-playsinline><source src=“sample_iPod.m4v”/></video>

将此player.html作为资源添加到您的Xcode项目中。

创建UIWebView,在Storyboard编辑器中将其挂钩,然后在ViewDidLoad中执行以下操作:

//set the webView delegate - hook up in Storyboard as well!

self.webView.delegate = self;

//initialize our HTML path - the file is player.html in our project

NSString *htmlPath = [[NSBundle mainBundle] pathForResource:@”player” ofType:@”html”];

//encode the path

NSString *escapedPath = [htmlPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

//webview needs NSURL, so let’s make one

NSURL *url = [NSURL URLWithString:escapedPath];

//load the request in the webview

[self.webView loadRequest:[NSURLRequest requestWithURL:url]];

最后,关键步骤,一定要标记视图以允许内联播放。

//flag the webview to play inline

self.webView.allowsInlineMediaPlayback = YES;

我写了一篇帖子,内容更详细here

答案 3 :(得分:0)

你能尝试一下。

- (void)viewDidLoad {

[super viewDidLoad];

NSString *embedHTML = @"\
<html><head>\
<style type=\"text/css\">\
body {\
background-color: transparent;\
color: white;\
}\
</style>\
</head><body style=\"margin:0\">\
<embed id=\"yt\" src=\"http://www.businessfactors.de/bfcms/images/stories/videos/defaultscreenvideos.mp4\" type=\"application/x-shockwave-mp4\" \
width=\"%0.0f\" height=\"%0.0f\"></embed>\
</body></html>";

webView = [[UIWebView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 412.0)];

[webView setOpaque:NO];
NSString *html = [NSString stringWithFormat:embedHTML, webView.frame.size.width, webView.frame.size.height];
[webView loadHTMLString:html baseURL:nil];

[self.view addSubview:webView];

}