获取保存在摄像头滚动iOS上的视频音频部分
我想把一段视频的音频文件保存到iPhone的照相/摄像机上。我有播放视频的代码,但我不知道如何获得实际的视频文件并从那里转换成mp3 这就是我目前所拥有的获取保存在摄像头滚动iOS上的视频音频部分,ios,iphone,objective-c,cocoa-touch,audio,Ios,Iphone,Objective C,Cocoa Touch,Audio,我想把一段视频的音频文件保存到iPhone的照相/摄像机上。我有播放视频的代码,但我不知道如何获得实际的视频文件并从那里转换成mp3 这就是我目前所拥有的 - (IBAction)PlayVideo:(id)sender { [self startMediaBrowserFromViewController: self usingDelegate: self]; } - (BOOL) startMediaBrowserFromViewController: (UIViewController
- (IBAction)PlayVideo:(id)sender {
[self startMediaBrowserFromViewController: self usingDelegate: self];
}
- (BOOL) startMediaBrowserFromViewController: (UIViewController*) controller
usingDelegate: (id <UIImagePickerControllerDelegate,
UINavigationControllerDelegate>) delegate{
if (([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypeSavedPhotosAlbum] == NO)
|| (delegate == nil)
|| (controller == nil))
return NO;
UIImagePickerController *mediaUI = [[UIImagePickerController alloc] init];
mediaUI.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
mediaUI.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];
mediaUI.allowsEditing = YES;
mediaUI.delegate = delegate;
[controller presentModalViewController: mediaUI animated: YES];
return YES;
}
- (void) imagePickerControllerDidCancel: (UIImagePickerController *) picker {
[self dismissModalViewControllerAnimated: YES];
}
- (void) imagePickerController: (UIImagePickerController *) picker
didFinishPickingMediaWithInfo: (NSDictionary *) info {
NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
[self dismissModalViewControllerAnimated:NO];
if (CFStringCompare ((__bridge_retained CFStringRef)mediaType, kUTTypeMovie, 0)
== kCFCompareEqualTo) {
NSString *moviePath = [[info objectForKey:
UIImagePickerControllerMediaURL] path];
MPMoviePlayerViewController* theMovie =
[[MPMoviePlayerViewController alloc] initWithContentURL: [info objectForKey:
UIImagePickerControllerMediaURL]];
[self presentMoviePlayerViewControllerAnimated:theMovie];
[[NSNotificationCenter defaultCenter]
addObserver: self
selector: @selector(myMovieFinishedCallback:)
name: MPMoviePlayerPlaybackDidFinishNotification
object: theMovie];
}
}
-(void) myMovieFinishedCallback: (NSNotification*) aNotification
{
[self dismissMoviePlayerViewControllerAnimated];
MPMoviePlayerController* theMovie = [aNotification object];
[[NSNotificationCenter defaultCenter]
removeObserver: self
name: MPMoviePlayerPlaybackDidFinishNotification
object: theMovie];
}
-(iAction)播放视频:(id)发送方{
[自启动MediaBrowserFromViewController:self-usingDelegate:self];
}
-(BOOL)startMediaBrowserFromViewController:(UIViewController*)控制器
usingDelegate:(id)delegate{
如果(([UIImagePickerController]资源类型可用:
UIImagePickerControllerSourceTypeSavedPhotosAlbum]==否)
||(委托==零)
||(控制器==零)
返回否;
UIImagePickerController*mediaUI=[[UIImagePickerController alloc]init];
mediaUI.sourceType=UIImagePickerControllerSourceTypeSavedPhotosAlbum;
mediaUI.mediaTypes=[[NSArray alloc]initWithObjects:(NSString*)KuttypeMoine,nil];
mediaUI.allowsEditing=是;
mediaUI.delegate=委托;
[控制器显示ModalViewController:mediaUI动画:是];
返回YES;
}
-(无效)ImagePickerController IDCancel:(UIImagePickerController*)选择器{
[自我解散Modalviewcontrolleranimated:是];
}
-(无效)imagePickerController:(UIImagePickerController*)选择器
didFinishPickingMediaWithInfo:(NSDictionary*)信息{
NSString*mediaType=[info objectForKey:UIImagePickerControllerMediaType];
[自我解散Modalviewcontrolleranimated:否];
if(CFStringCompare((uu桥u保留的CFStringRef)媒体类型,kUTTypeMovie,0)
==KCFComparequalto){
NSString*moviePath=[[info objectForKey:
UIImagePickerControllerMediaURL]路径];
MPMoviePlayerViewController*theMovie=
[[MPMoviePlayerViewController alloc]initWithContentURL:[info objectForKey:
UIImagePickerControllerMediaURL]];
[自我呈现的电影播放服务控制器:theMovie];
[[NSNotificationCenter defaultCenter]
addObserver:self
选择器:@selector(myMovieFinishedCallback:)
名称:MPMoviePlayerPlaybackDidFinishNotification
对象:theMovie];
}
}
-(作废)myMovieFinishedCallback:(NSNotification*)通知
{
[self DismissionMoviePlayerServiceController];
MPMoviePlayerController*theMovie=[aNotification object];
[[NSNotificationCenter defaultCenter]
移除观察者:自我
名称:MPMoviePlayerPlaybackDidFinishNotification
对象:theMovie];
}