MPMoviePlayerController でビデオを表示すると、黒い画面が表示されることがあります。UIImagePickerController を使用して、新しいビデオを作成するか、保存したビデオを選択します。
以下の imagePickerController:: で MPMoviePlayerController を作成します。viewDidAppear: で手札をプレイします。
新しいムービーを作成するとムービーは正常に再生されますが、既存のムービーを選択すると黒い画面になります。どちらの場合も、アップロードする有効な映画があります。
再生メッセージありとなしの両方で試しました。何か案は?
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
UIImage *originalImage, *editedImage;
// Handle a still image picked from a photo album
if (CFStringCompare ((__bridge CFStringRef) mediaType, kUTTypeImage, 0) == kCFCompareEqualTo)
{
editedImage = (UIImage *) [info objectForKey: UIImagePickerControllerEditedImage];
originalImage = (UIImage *) [info objectForKey: UIImagePickerControllerOriginalImage];
_image = (editedImage == nil) ? originalImage : editedImage;
_imageView.image = _image;
_imageParentView.hidden = NO;
}
// Handle a video picked from a photo album
if (CFStringCompare ((__bridge CFStringRef) mediaType, kUTTypeMovie, 0) == kCFCompareEqualTo)
{
_rawVideoURL = [info objectForKey: UIImagePickerControllerMediaURL];
_videoParentView.hidden = NO;
_player = [[MPMoviePlayerController alloc] initWithContentURL: _rawVideoURL];
}
[self dismissModalViewControllerAnimated: YES];
}
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if (_player != nil)
{
[_player prepareToPlay];
[_player.view setFrame: _videoView.bounds]; // player's frame must match parent's
[_videoView addSubview: _player.view];
_player.repeatMode = MPMovieRepeatModeOne;
_player.scalingMode = MPMovieScalingModeAspectFit;
[_player play];
}
}