Search code examples
xamarin.iosmpmediaitemcollection

Copy item from iPod Library


I'm trying to copy an item from the iPod Library to my local storage space - for later playback. I've got the item URl but it's (ipod-library://item/item.mp3?id=2398084975506389321) any idea how to access the actual file?

Thanks, Rick


Solution

  • This will work https://gist.github.com/3304992

    -(void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection{
        NSString *tempPath = NSTemporaryDirectory();
        int i=1;
        for (MPMediaItem *theItem in mediaItemCollection.items) {
            NSURL *url = [theItem valueForProperty:MPMediaItemPropertyAssetURL];
            AVURLAsset *songAsset = [AVURLAsset URLAssetWithURL:url options:nil];
            AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset: songAsset presetName: AVAssetExportPresetPassthrough];
            exporter.outputFileType = @"com.apple.coreaudio-format";
            NSString *fname = [[NSString stringWithFormat:@"%d",i] stringByAppendingString:@".caf"];
            ++i;
            NSString *exportFile = [tempPath stringByAppendingPathComponent: fname];
            exporter.outputURL = [NSURL fileURLWithPath:exportFile];
            [exporter exportAsynchronouslyWithCompletionHandler:^{
                //Code for completion Handler
            }];
        }
        [picker dismissViewControllerAnimated:YES completion:Nil];
    }
    

    use MPMediaPickerController to pick the media