興味深い問題です。これは、他の誰かがこれを見ている場合の情報のためだけです。iPad OS 3.2 では、ピッカーは機能し、カメラ ロールだけでなくアルバムからもビデオを選択できますが、ビデオの取得にいくつか問題があることがわかりました。
ここに私の作業コードフラグメントがあります
呼び出し
NSArray *mediaTypesAllowed = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
[picker setMediaTypes:mediaTypesAllowed];
picker.delegate = self;
picker.allowsEditing = NO;
picker.wantsFullScreenLayout = YES;
if(!IsEmpty(self.editBackgroundPopover)){
[self.editBackgroundPopover setContentViewController:picker animated:YES];
}
そして、ここにデリゲートメソッドがあります
imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[self.editBackgroundPopover dismissPopoverAnimated:true];
NSString* mediaType = [info objectForKey:UIImagePickerControllerMediaType];
//not production code, do not use hard coded string in real app
if ( [ mediaType isEqualToString:@"public.image" ]) {
NSLog(@"Picked a photo");
}
//not production code, do not use hard coded string in real app
else if ( [ mediaType isEqualToString:@"public.movie" ]){
NSLog(@"Picked a movie at URL %@", [info objectForKey:UIImagePickerControllerMediaURL]);
NSURL *url = [info objectForKey:UIImagePickerControllerMediaURL];
NSLog(@"> %@", [url absoluteString]);
}
[[picker self] dismissModalViewControllerAnimated:YES];
}
ただし、ピッカーから取得したビデオ URL の形式は次のとおりです。
ファイル:/localhost/private/var/mobile/Applications/C6FAC491-D27D-45A6-B805-951727ED2CEC/tmp/-Tmp-/trim.KOzqps.MOV
そのため、ビデオ全体を選択している場合でも、ビデオがトリミング コードによって処理されているように見えます。また、iTunes からロードしたときの元のタイプは m4v であったムービーは、もちろんデバイスで再生できないタイプの MOV であることに注意してください。URL を再生してみましたが、「この種の動画は再生できません」というアラートが表示されました。
Apple がここで何をしているのかよくわかりません。この API は、写真ライブラリからビデオを読み込んで再生する方法としては、実際には使用できないようです。
願わくば、IOS 4 がもっと近々登場することを願っていますが、私の iPad アプリについては、まだ数か月先です。