2016-06-14 8 views
1

次の方法を考えてみましょう。iOS画像ピッカーがビデオのファイルパスを返さない

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

    // Apparently valid URL, looks like 
    // "file:///private/var/mobile/Containers/Data/Application/.../filename.mov" 
    NSURL *videoURL = info[UIImagePickerControllerMediaURL]; 

    // Always evaluates to false; no videos are saved 
    if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(videoURL.absoluteString) {   
     UISaveVideoAtPathToSavedPhotosAlbum(videoURL.absoluteString, self, @selector(video:didFinishSavingWithError:contextInfo:), nil); 
    }  
} 

なぜこれが機能しないのですか?どのように修正しますか?

答えて

0

名前が示すとおり、方法UIVideoAtPathIsCompatibleWithSavedPhotosAlbum()UISaveVideoAtPathToSavedPhotosAlbum()は、のパス(URLではありません)を必要とします。 Not the same thing.

ストリング

file:///private/var/mobile/Containers/Data/Application/.../filename.mov

スキーム

file://

経路

0123からなる URL、あります

/private/var/mobile/Containers/Data/Application/.../filename.mov

パスを受け入れるように設計された関数は、完全なURLが渡されたときに正しく機能しません。

この問題を解決するには、videoURL.absoluteStringへの呼び出しをvideoURL.pathに置き換えます。

関連する問題