【问题标题】:How to Embed a Local Video File Into Html to play in UIWebView?如何将本地视频文件嵌入到 Html 中以在 UIWebView 中播放?
【发布时间】:2012-05-30 09:47:23
【问题描述】:

我可以在 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

【问题讨论】:

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


【解决方案1】:

如果您使用 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> 

【讨论】:

  • 没有。你误会我了。首先,我只尝试了自动播放视频的 WebView。然后我打算用Html
  • 我想在 WebView 中播放视频,并且视频也应该在用户单击播放按钮后开始播放。
  • 如果您在 UIWebView 上运行的 URL/html 文件不是您的,那么您已在 viewDidLoad 部分添加代码以禁用自动播放。如果要播放本地文件,则必须制作自己的 HTML 文件并在内部配置设置。不太清楚“计划使用 HTML”是什么意思,因为如果您计划在网页上显示 vid,您的 UIWebView 应该使用 html 文件(推荐)。
  • 实际上 mp4 视频正在 WebView 中播放,但问题是它们是自动播放的。我创建了一个带有嵌入 html 的 webview 项目,并且在 embedHtml 中传递的链接是互联网链接。这很好用。但是如果我通过本地文件 NSUrl ,那么它会显示交叉播放符号。无论如何我已经厌倦了解决这个问题,我正在使用 MPMoviePlayerController。
【解决方案2】:

如果您将 .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 的默认视频播放器中播放.. 祝你好运。。

【讨论】:

  • 我已经可以在 UIWebView 中播放视频了。请立即检查我的更新问题
猜你喜欢
  • 1970-01-01
  • 2011-06-17
  • 2014-08-24
  • 2019-01-12
  • 1970-01-01
  • 1970-01-01
  • 2012-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多