2012-10-12 3 views
6

UIWebView에서 비디오를로드하려고합니다. 비디오는 로컬 파일 시스템에 저장됩니다. 다음은 비디오를로드하는 데 사용하는 코드 단편입니다. 웹보기로드에서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]; 
} 

내가 콘솔에서 얻을 오류가 오류 도메인 = WebKitErrorDomain 코드 = 204 "플러그인 처리 부하"사용자 정보 = 0x1f8b3c70 {NSErrorFailingURLStringKey = applewebdata // 3F0047AD-E6CF-4EAD-A4C3-DA6E1C0BD603, WebKitErrorMIMETypeKey = 비디오/X-M4V, NSErrorFailingURLKey = applewebdata : // 3F0047AD-E6CF-4EAD-A4C3-DA6E1C0BD603, NSLocalizedDescription = 플러그인 처리 부하}

,536,913,632 10

그러나 동일한 코드가 다른 모든 파일 형식 (예 : PNG, DOC 등)을로드하는 데 사용됩니다.

제발 도와주세요 ... !!!

+1

장치에있는 비디오 파일을 재생할 때 왜 WebView를 사용 하시겠습니까? MPMoviePlayerViewController는 훨씬 간단하고 메모리를 덜 사용하며이를 배치합니다. WebView는 Safari가 아닙니다. –

+3

답장을 보내 주셔서 감사합니다.하지만 해당보기에서 다른 파일 형식을로드 중이므로 UIWebview에서 비디오를로드해야합니다. –

답변

5

MPMoviePlayerController - (Documentation)로 로컬 비디오 및 기타 비디오를로드해야합니다. 비디오 재생이 필요하고 원할하고 네이티브 응용 프로그램을 개발하는 경우.

+0

답장을 보내 주셔서 감사합니다.하지만 해당보기에서 다른 파일 형식을로드 중이므로 UIWebview에서 비디오를로드해야합니다. –

+1

같은 크기의 숨겨진 MPMoviePlayerController를 가질 수 있습니다. 사용자가 비디오를 선택하면 플레이어를 표시하고 재생합니다. 사용자가 이미지를 선택하면 비디오를 중지하고 숨 깁니다. 나는 WGSN app에서 이것을했다. - https://itunes.apple.com/gb/app/wgsn-365/id550174392?mt=8 - 스크린 샷 # 3을 체크 아웃한다. webview를 통해 실행 가능한 pdf/images가있는 콘텐츠 뷰어이고, 상단에있는 MPMoviePlayerController를 통한 비디오 – Daniel

+1

MPMoviePlayerController가 나를 위해 완벽하게 작동했습니다 ... !!! –

1

당신은 base64로 문자열로 데이터를 변환하고 video 태그 여기

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의 문자열과 사파리의 HTML 기능을 사용해야합니다.

+0

그것은 나를 위해 작동하지 않습니다 – jose920405

+0

나는 이런 식으로 메모리 문제가 있습니다 –

+0

@BryanPosas, 메모리에 모든 파일 데이터를로드하기 때문에 매우 큰 비디오에는 불가피합니다. 그러나 그것이 webView에서 비디오 데이터를 처리하는 유일한 방법 인 것 같습니다. – malex

관련 문제