如何将本地视频文件嵌入到Html中以在UIWebView中播放?

时间:2012-05-30 09:47:23

标签: iphone objective-c ios cocoa-touch uiwebview

我可以在WebView中播放视频文件,但视频会在没有用户交互的情况下自动播放。所以现在我正在采用不同的方法来实现这一目标。

    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];

这样,我可以从互联网上播放视频文件。但我想播放本地内存中的文件。

即使尝试传递本地文件路径变量,视频也无法播放。任何人都可以告诉我如何将我的本地文件嵌入到HTML中,以便我可以像在互联网视频中一样在webview中播放吗?

案例1:视频自动在WebView中播放,但播放按钮仍在顶部。 案例2:如上所示嵌入在线视频URL,可以播放视频。但我想传递本地视频文件路径而不是在线视频网址

2 个答案:

答案 0 :(得分:2)

如果您使用的是UIWebView,则无法从本地内存运行文件。如果您希望视频无法自动播放,则必须在HTML文件中输入代码(我假设您显示的HTML文件是您自己的)以禁用视频的自动播放。

如果您使用的是对象,请参阅以下示例代码

<object width="160" height="144">
<param name="autoplay" value="false">

<embed src="sample.mov" width="160" height="144"
autoplay="false" controller="false"
</embed>

</object> 

答案 1 :(得分:1)

如果你将.mp4或兼容的其他视频添加到你的应用程序包中,你就可以达到这样的路径;

[[NSBundle mainBundle] pathForResource:@"blalba" ofType:@"mp4"];

它会为您提供网址字符串。

如果您的视频不在捆绑中,无论是从捆绑中复制还是从互联网下载,您都可以获得这样的目录;

NSString *documentdir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *tileDirectory = [documentdir stringByAppendingPathComponent:@"xxxx/Tiles"];
NSLog(@"Tile Directory: %@", tileDirectory);

获取视频网址后,您可以将其添加到WebView中。但它会在iphone的默认视频播放器中播放我认为.. 祝你好运..