MPMediaItems raw song data

前端 未结 3 1095
野性不改
野性不改 2020-11-29 17:40

I was wondering how to access an MPMediaItem\'s raw data.

Any ideas?

3条回答
  •  长情又很酷
    2020-11-29 18:07

    you can obtain the media item's data in such way:

    -(void)mediaItemToData
    {
        // Implement in your project the media item picker
    
        MPMediaItem *curItem = musicPlayer.nowPlayingItem;
    
        NSURL *url = [curItem valueForProperty: MPMediaItemPropertyAssetURL];
    
        AVURLAsset *songAsset = [AVURLAsset URLAssetWithURL: url options:nil];
    
        AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset: songAsset
                                           presetName: AVAssetExportPresetPassthrough];
    
        exporter.outputFileType = @"public.mpeg-4";
    
        NSString *exportFile = [[self myDocumentsDirectory] stringByAppendingPathComponent:           
                                                                   @"exported.mp4"];
    
        NSURL *exportURL = [[NSURL fileURLWithPath:exportFile] retain];
        exporter.outputURL = exportURL; 
    
        // do the export
        // (completion handler block omitted) 
        [exporter exportAsynchronouslyWithCompletionHandler:
        ^{
        NSData *data = [NSData dataWithContentsOfFile: [[self myDocumentsDirectory] 
                                         stringByAppendingPathComponent: @"exported.mp4"]];
    
        // Do with data something
    
        }];
    }
    

    This code will work only on ios 4.0 and later

    Good luck!

提交回复
热议问题