2

Я хочу загрузить mp3 с моего телефона на сервер, для этого я использую MPMediaPickerController.Как получить NSData mp3 с помощью MPMediaPickerController?

После получения URL-адреса MPMediaItem, я хочу получить NSData этого URL-адреса, но я получаю null в NSData.

- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection 
{ 
    [self dismissViewControllerAnimated:YES completion:nil]; 

    MPMediaItem *item=[[mediaItemCollection items] objectAtIndex:0]; 
    NSURL *url = [item valueForProperty: MPMediaItemPropertyAssetURL]; 
    NSString *path = [NSString stringWithFormat:@"%@",url]; 
    NSData *data = [[NSFileManager defaultManager] contentsAtPath:path]; 
} 

я также попытался

NSData *data = [NSData dataWithContentsOfURL:url]; 

Но данные имеет нулевое значение, то почему?

Я также пробовал NOt able to convert from MPMediaItem(mp3 song) to NSData Но не получаю результата.

Может ли кто-нибудь помочь мне получить NSData mp3.

Заранее спасибо.

+1

Если вам нужно знать, в чем причина отказа, используйте dataWithContentsOfURL: options: error :. – dans3itz

+0

Ошибка домена = NSCocoaErrorDomain Code = 256 «Операция не может быть выполнена (ошибка Cocoa 256.)« UserInfo = 0x1cd051b0 {NSURL = ipod-library: //item/item.mp3? Id = -4848947984816581540} – Rajneesh071

+0

URL-адрес подходит только для AVFoundation; NSData не сможет ничего сделать с NSURL. – dans3itz

ответ

1

Посмотрите на эту библиотеку: https://github.com/tapsquare/TSLibraryImport Он может конвертировать элементы не DRM из музыкальной библиотеки iPod в mp3-файлы, а затем вы можете сохранить их или использовать в качестве NSData для дальнейшей обработки.

+0

спасибо, что он отлично работает для меня ... – Rajneesh071

+0

Можете ли вы сказать, что если я хочу преобразовать его в NSData, что мне нужно делать? В настоящее время я использую NSMutableData * outputData = [[NSMutableData alloc] initWithContentsOfURL: outURL]; Но он не играет на сервере. Пожалуйста, помогите, если это возможно. Спасибо, – ManiaChamp