无法从MPMediaItem(MP3歌曲)转换为NSData的(NOt able to conver

2019-11-01 15:28发布

我曾尝试下面的代码:

这是MPMediPickerController我的委托方法:

- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection {

    // Dismiss the media item picker.
    [self dismissModalViewControllerAnimated: YES];

    NSLog(@"%@ %d",mediaItemCollection,mediaItemCollection.count);

    NSArray *newMediaItem= [mediaItemCollection items];


    MPMediaItem *item=[[newMediaItem objectAtIndex:0] retain];

    [self uploadMusicFile:item];
}

这是我自定义的方法MPMediaItem到NSData的:

- (void) uploadMusicFile:(MPMediaItem *)song
{
    NSURL *url = [song valueForProperty: MPMediaItemPropertyAssetURL];


    AVURLAsset *songAsset = [AVURLAsset URLAssetWithURL: url options:nil];

    AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset: songAsset
                                                                      presetName: AVAssetExportPresetPassthrough];

    exporter.outputFileType = @"public.mpeg-4";
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *exportFile = [documentsDirectory stringByAppendingPathComponent:
                            @"exported.mp4"];

    NSURL *exportURL = [[NSURL fileURLWithPath:exportFile] retain];
    exporter.outputURL = exportURL;

    [exporter exportAsynchronouslyWithCompletionHandler:
     ^{
         NSData *data = [NSData dataWithContentsOfFile: [documentsDirectory
                                                         stringByAppendingPathComponent: @"exported.mp4"]];

            NSLog(@"%@",data);
     }];
}

我在的NSLog让“空”。

我也检查这篇文章:

如何NSData的转换为MPMediaitem歌iOS版SDK

但没有得到解决。

我使用的Xcode 4.6和iOS 6.1。

任何一个可以告诉我这里有什么问题?

文章来源: NOt able to convert from MPMediaItem(mp3 song) to NSData