2012-05-21 7 views
1

Я получаю нулевые значения, когда я использую MPMediaItemCollection конвертировать MPMediaItemPropertyAssetURL в данные?Я получаю нулевые значения, когда я использую `MPMediaItemCollection` конвертировать` MPMediaItemPropertyAssetURL` в данные?

вот мой код

MPMediaItemCollection *collection=[allAlbumsArray objectAtIndex:indexPath.row]; 
MPMediaItem *item = [collection representativeItem]; 

NSLog(@" songs titles_str url is===>%@",[item valueForProperty:MPMediaItemPropertyAssetURL]); 

NSLog(@"class type is %@",[[item valueForProperty:MPMediaItemPropertyAssetURL] class]); 

self.songData=[NSData dataWithContentsOfURL:[item valueForProperty:MPMediaItemPropertyAssetURL]]; 

NSLog(@"original data is %@",self.songData); 

здесь я получаю URL для песни ipod-library://item/item.mp3?id=-9207595762773025867

но когда я конвертировать в данные я получаю нулевое значение Спасибо за заранее.

+0

где вы инициализируете AudioFile? – rishi

+1

Каков ваш вывод 'NSLog();', покажите нам –

ответ

1

Проблема заключается в том, что URL-адрес имеет пользовательскую схему, ipod-library, которая может использоваться только с методами AVFoundation, например AVAsset.

MPMediaItem Class Reference говорит это о MPMediaItemPropertyAssetURL:

MPMediaItemPropertyAssetURL

URL, указывающий на элемент массовой информации, из которого можно создать объект AVAsset (или другой URL на основе Foundation AV объекта), с любыми параметрами по желанию. Значение - объект NSURL.

URL-адрес имеет пользовательскую схему ipod-библиотеки. Например, URL может выглядеть следующим образом:

ставку библиотека: //item/item.m4a ID = 12345

Использование в URL вне рамок Фонда AV не поддерживается.

+0

, можете ли вы предоставить некоторые инструкции для получения данных здесь, я использую NSURL * url = [item valueForProperty: MPMediaItemPropertyAssetURL]; AVURLAsset * songAsset = [AVURLAsset URLAssetWithURL: url опции: nil]; AVAssetExportSession * экспортер = [[AVAssetExportSession alloc] initWithAsset: songAsset presetName: AVAssetExportPresetPassthrough]; – Hari1251

+0

@ Pandu1251 Извините, не уверен, как вы получите доступ к необработанным данным из 'AVAsset'. – mttrb

+0

ok вы можете узнать любой способ получить файл для данных здесь AVURLAsset * songAsset = [AVURLAsset URLAssetWithURL: параметры URL: nil]; NSLog (@ "url is% @", songAsset), url Hari1251