6

我正在尝试在 UIWebView 中加载视频。视频存储在本地文件系统中。这是我用于加载视频的代码片段。

{
   NSString* filePAth = [[NSBundle mainBundle] pathForResource:@"sample_iPod" ofType:@"m4v"];
   NSLog(@"%@",filePAth);
   NSData* data = [NSData dataWithContentsOfFile:filePAth];
   [_webView loadData:data MIMEType:@"video/x-m4v" textEncodingName:@"UTF-8" baseURL:nil];
}

这是我在控制台中遇到的错误:

Webview 加载错误:Error Domain=WebKitErrorDomain Code=204“插件处理负载”UserInfo=0x1f8b3c70 {NSErrorFailingURLStringKey=applewebdata://3F0047AD-E6CF-4EAD-A4C3-DA6E1C0BD603, WebKitErrorMIMETypeKey=video/x-m4v, NSErrorFailingURLKey=applewebdata ://3F0047AD-E6CF-4EAD-A4C3-DA6E1C0BD603, NSLocalizedDescription=插件处理的负载}

但是,相同的代码适用于加载所有其他文件类型,例如:PNG、DOC 等。

请帮忙...!!!

4

2 回答 2

5

您应该尽可能加载本地视频和其他视频MPMoviePlayerController- (文档) - 如果播放视频是您所需要和想要的,并且您正在开发本机应用程序。

于 2012-10-12T14:46:48.097 回答
1

您需要将数据转换为 base64 字符串并使用带有video标签的 Safari 的 HTML 功能

NSString *base64String = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];

NSString *str = [NSString stringWithFormat:@" \
                     <div style=\"height:100%%;\"> \
                     <p style=\"position: absolute; top: 50%%; left: 50%%; transform: translate(-50%%, -50%%)\"> \
                     <video controls> \
                     <source type=\"%@\" src=\"data:%@;base64,%@\"> \
                     </video></p></div>", contentType, contentType, base64String];

[webView loadHTMLString:str baseURL:nil];

data是您的原始视频数据,contentType是 contentType 字符串。

于 2015-09-22T20:31:06.770 回答