2011-04-18 7 views
2

MPMovieplayer를 통해 비디오 클립을 재생하는 앱이 있습니다. 이 클립은 mp4 형식이며 모두 작동합니다. 같은 클립을 찍어 사진 앨범에 저장하고 싶습니다. iTunes를 통해 컴퓨터의 비디오를 수동으로 전화기에 동기화하면이 작업이 가능합니다. 동영상 파일을 트랜스 코딩하여 .MOV 형식으로 저장하는 것으로 보입니다.MP4를 iPhone 포토 앨범에 저장

그러나 코드를 통해 앱에서 동영상을 저장하려고하면 비디오 형식 오류가 발생합니다. 그래서 제 질문은 내 비디오를 사진 앨범에 저장하는 방법입니다. 이것이 mp4로 가능하지 않다면 (앱에서) .MOV로 변환하는 방법은 무엇입니까? 당신의 contentURL 파일 경로의 URL 또는 웹 URL

ALAssetsLibrary* library = [[ALAssetsLibrary alloc]init]; 

    if ([library videoAtPathIsCompatibleWithSavedPhotosAlbum:moviePlayerController.contentURL]) 
    { 

     NSURL *clipURl = moviePlayerController.contentURL; 
     [library writeVideoAtPathToSavedPhotosAlbum:clipURl completionBlock:^(NSURL *assetURL, NSError *error) 
     { 
      if (error) 
       [ErrorAlertView showError:error]; 
      else [ErrorAlertView showErrorTitle:@"Success" message:@"Your video clip is saved"]; 
     }]; 
    } 
    [library release]; 
+0

나는 이것이 올바른 방법이 아니라는 것을 안다. 그러나 때때로 미디어 플레이어는 그것이 "지원되는"한 확장 기능을 정말로 신경 쓰지 않는다. 실제 디코딩/디 멀티플렉싱은 종종 심오하게 발생하며 파일 확장자와 관련이 없습니다. 따라서 대담한 제안 : .mp4의 이름을 .mov로 바꾸어보십시오.하지만 잘못된 해결 방법이 될 수 있습니다. – Till

답변

2

가 : 여기

코드인가? writeVideoAtPathToSavedPhotosAlbum 방법, 내 테스트에서 실제로 이런 방식으로 (예를 들어) 생성 된 파일 경로의 URL이 필요합니다

NSString *pathString = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"mp4"]; 
NSString *pathURL = [NSURL fileURLWithPath:pathString isDirectory:NO]; 

이 당신이를 사용하는 경우, 먼저 웹에서 동영상을 다운로드해야 의미 웹 URL. 다운로드 디렉토리를 설정하려면 setDownloadDestinationPath: 메서드를 사용하여 ASIHTTPRequest을 사용하는 것이 좋습니다.

일반적으로 mp4 파일은 올바른 (망막, 비 망막, iPad) 장치 (see my tests of supported video files here)의 올바른 해상도이면 작동해야합니다. 비디오가 여전히 파일 경로의 URL이 올바른지 반드시 확인한 후 videoAtPathIsCompatibleWithSavedPhotosAlbum:에 응답을 제공하지 않는 경우

, 당신은 사용해야합니다 AVAssetExportSession 장치에 적합한 파일을 얻기 위해 (AVAssetExportPresetLowQuality, AVAssetExportPresetMediumQuality, 또는 AVAssetExportPresetHighestQuality와) 그 그런 다음 사진 앨범에 저장할 수 있습니다.

관련 문제