/ / Як записати відео на екрані додатка - iphone, ios

Як записати відео на екрані додатка - iphone, ios

Я створив програму для потокового відео. і тепер я хочу записати це відео, яке грає у MPVideoPlayer, а також його звук. я намагався цей код. але цей код - це лише чорний екран і звук. Я додаю MPVideoPlayer екземпляр динамічно. так, plz допоможіть мені зробити це будь-який вихідний код або бібліотека буде відмінною допомогою.

Відповіді:

0 для відповіді № 1

Спробуйте це :

.h файл імпортувати MediaPlayer / MediaPlayer.h

    NSString *strSelectedVideoPath;
MPMoviePlayerController *player

@property (nonatomic,retain) NSString *strSelectedVideoPath;
@property (nonatomic,retain) MPMoviePlayerController *player;

.m файл

    -(void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];

player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:strSelectedVideoPath]];
player.scalingMode = MPMovieScalingModeFill;
player.movieSourceType = MPMovieSourceTypeFile;
player.view.frame = CGRectMake(0, 45, 320, 400);
player.shouldAutoplay = YES;
[player prepareToPlay];
[self.view addSubview:player.view];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:player];

[player play];
}


- (void) movieFinishedCallback:(NSNotification*) aNotification {
MPMoviePlayerController *player1 = [aNotification object];
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:player1];
[player1.view removeFromSuperview];
player1 = nil;

}

Ви повинні додати MediaPlayer.framework

Для запису відео:

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

NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
[self dismissModalViewControllerAnimated:NO];

if (CFStringCompare ((CFStringRef) mediaType, kUTTypeMovie, 0)
== kCFCompareEqualTo) {

NSString *moviePath = [[info objectForKey: UIImagePickerControllerMediaURL] path];
if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (moviePath)) {
UISaveVideoAtPathToSavedPhotosAlbum (moviePath,self,@selector(video:didFinishSavingWithError:contextInfo:), nil);
}
}
}


- (void)video:(NSString*)videoPath didFinishSavingWithError:(NSError*)error contextInfo:(void*)contextInfo {

if (error) {

}
else{
NSURL *videoURl = [NSURL fileURLWithPath:videoPath];
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURl options:nil];
AVAssetImageGenerator *generate = [[AVAssetImageGenerator alloc] initWithAsset:asset];
generate.appliesPreferredTrackTransform = YES;
NSError *err = NULL;
//For Thumb Image
CMTime time = CMTimeMake(1, 60);
CGImageRef imgRef = [generate copyCGImageAtTime:time actualTime:NULL error:&err];

self.strUploadVideoPath = videoPath;



CGImageRelease(imgRef);
[generate release];
[asset release];
}
}