我一直在使用以下代碼從MPMediaItemPickerController返回的MPMediaItem對象中提取資產url,以便我可以將音樂文件從用戶iPhone itunes音樂庫複製到文檔文件夾進行處理,但在iPhone 5s上,我總是從MPMediaItemPropertyAssetURL獲得一個空值,但是當我在iPhone 4或iPhone 5上運行相同的代碼時,它的工作原理是它應該返回正確的URL。MPMediaItemPropertyAssetURL返回null僅適用於iPhone 5s
- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection {
[self dismissViewControllerAnimated:YES completion:nil];
if(mediaItemCollection){
MPMediaItem *mediaItem = (MPMediaItem *)[mediaItemCollection.items objectAtIndex: 0];
NSString *songTitle = [mediaItem valueForProperty: MPMediaItemPropertyTitle];
NSLog(@"songtitle: %@", songTitle);
NSURL *assetURL = [mediaItem valueForProperty: MPMediaItemPropertyAssetURL];
NSLog(@"%@", assetURL);
}
}
我試過從有效的體系結構中刪除arm64,只爲armv7和armv7s構建,但是沒有解決這個問題。
有沒有人知道爲什麼會發生這種情況,我如何解決這個問題,或者如果有我可以使用的解決方法?我需要能夠將音樂從iPhone的音樂庫複製到文檔文件夾,以便我可以正確處理dj應用程序的音樂。
感謝
iCloud的項目,它可以幫助你http://stackoverflow.com/questions/5571036/how-to-detect-if-an-mpmediaitem-represents -a-drm-protected-audio-track-on-ios/6401317#6401317 –
不幸的是,這正是我已經在使用的代碼,它正在除iPhone 5s之外的所有設備上工作。以下代碼總是在iPhone 5s上產生一個NULL assetURL變量。 NSURL * assetURL = [item valueForProperty:MPMediaItemPropertyAssetURL];我想它必須與64位體系結構有關,但我無法想象爲什麼它會是一個問題...謝謝 –
我也有這個問題,但與iPhone 5. MPMediaItemPropertyAssetURL總是返回零對於從設備上的查詢返回的曲目 - 所以它必須在那裏(我可以從iPod播放它) – Jonny