Quantcast
Channel: User Sargis - Stack Overflow
Viewing all articles
Browse latest Browse all 37

Answer by Sargis for Converting MPMediaItem to NSData

$
0
0

Try this:

-(void)mediaItemToData : (MPMediaItem * ) curItem{    NSURL *url = [curItem valueForProperty: MPMediaItemPropertyAssetURL];    AVURLAsset *songAsset = [AVURLAsset URLAssetWithURL: url options:nil];    AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset: songAsset                                                                      presetName:AVAssetExportPresetAppleM4A];    exporter.outputFileType =   @"com.apple.m4a-audio";    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);    NSString * myDocumentsDirectory = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;    [[NSDate date] timeIntervalSince1970];    NSTimeInterval seconds = [[NSDate date] timeIntervalSince1970];    NSString *intervalSeconds = [NSString stringWithFormat:@"%0.0f",seconds];    NSString * fileName = [NSString stringWithFormat:@"%@.m4a",intervalSeconds];    NSString *exportFile = [myDocumentsDirectory stringByAppendingPathComponent:fileName];    NSURL *exportURL = [NSURL fileURLWithPath:exportFile];    exporter.outputURL = exportURL;    // do the export    // (completion handler block omitted)    [exporter exportAsynchronouslyWithCompletionHandler:     ^{         int exportStatus = exporter.status;         switch (exportStatus)         {             case AVAssetExportSessionStatusFailed:             {                 NSError *exportError = exporter.error;                 NSLog (@"AVAssetExportSessionStatusFailed: %@", exportError);                 break;             }             case AVAssetExportSessionStatusCompleted:             {                 NSLog (@"AVAssetExportSessionStatusCompleted");                 NSData *data = [NSData dataWithContentsOfFile: [myDocumentsDirectory                                                                 stringByAppendingPathComponent:fileName]];                 //DLog(@"Data %@",data);                 data = nil;                 break;             }             case AVAssetExportSessionStatusUnknown:             {                 NSLog (@"AVAssetExportSessionStatusUnknown"); break;             }             case AVAssetExportSessionStatusExporting:             {                 NSLog (@"AVAssetExportSessionStatusExporting"); break;             }             case AVAssetExportSessionStatusCancelled:             {                 NSLog (@"AVAssetExportSessionStatusCancelled"); break;             }             case AVAssetExportSessionStatusWaiting:             {                 NSLog (@"AVAssetExportSessionStatusWaiting"); break;             }             default:             {                 NSLog (@"didn't get export status"); break;             }         }     }];}

Viewing all articles
Browse latest Browse all 37

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>