2

SOS、助けが必要です。私は Amazon S3 に画像をアップロードしましたが、問題なく動作していますが、ビデオをアップロードするためにこのコードを書き直すと、何か間違っていると思います。MOV ファイルをアップロードしていますが、URL からブラウザで再生しようとすると、次のように表示されます: 画像 https... にエラーが含まれているため表示できません。

これが私のコードです:

- (BOOL) startMediaBrowserFromViewController: (UIViewController*) controller
                           usingDelegate: (id <UIImagePickerControllerDelegate,
                                           UINavigationControllerDelegate>) delegate{
// Get image picker
UIImagePickerController *mediaUI = [[UIImagePickerController alloc] init];
mediaUI.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
mediaUI.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];
mediaUI.allowsEditing = YES;
mediaUI.delegate = delegate;

// Display movie files
[controller presentModalViewController:mediaUI animated:YES ];

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

[self dismissModalViewControllerAnimated:YES];
UIImage *image = (UIImage*) [info objectForKey:UIImagePickerControllerOriginalImage];    

fileName = "anyName.MOV";
NSData *imageData = UIImageJPEGRepresentation(image, 1.0);

@try {
    S3PutObjectRequest *por = [[S3PutObjectRequest alloc] initWithKey:fileName inBucket:MY_BUCKET];
    por.contentType = @"movie/mov";
    por.cannedACL   = [S3CannedACL publicRead];
    por.data        = imageData;
    [s3 putObject:por];
}

@catch (AmazonClientException *exception) {
    NSLog(@"exception %@", exception);
}
}

私の間違いを指摘してください。

どうもありがとう!!!

4

1 に答える 1

7

並べ替えました。問題は Image オブジェクトにありました。だから私はビデオのURLを取得しました:

NSURL *image = [info objectForKey:UIImagePickerControllerMediaURL];

その代わり

UIImage *image = (UIImage*) [info objectForKey:UIImagePickerControllerOriginalImage];

そして、URLからNSDataを渡すので、行を置き換えました

NSData *imageData = UIImageJPEGRepresentation(image, 1.0);

に:

NSData *imageData = [NSData dataWithContentsOfURL:image];

たたぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ//////

于 2013-05-23T16:25:32.307 に答える