在相机胶卷iOS上保存视频的音频部分

时间:2014-03-10 18:27:14

标签: ios iphone objective-c cocoa-touch audio

我想将视频的音频文件保存到iPhone相机胶卷。我有播放视频的代码,但我不知道如何获取实际的视频文件并从那里转换为mp3。

这是我到目前为止所拥有的。

 - (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];
 }

0 个答案:

没有答案