5

我可以在 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,可以播放视频。但我想传递本地视频文件路径而不是在线视频url

4

2 回答 2

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> 
于 2012-05-30T09:59:56.420 回答
1

如果您将 .mp4 或兼容的其他视频添加到您的应用程序包中,您可以像这样访问它的路径;

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

它为您提供 url 字符串。

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

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

获取视频的 url 后,你可以把它放到你的 WebView 中。但我认为它会在 iphone 的默认视频播放器中播放.. 祝你好运..

于 2012-05-30T12:35:14.480 回答