使用MPMediaPickerController时无法从音乐库中选择歌曲

时间:2014-10-01 17:15:40

标签: ios objective-c drm mpmusicplayercontroller mpmediapickercontroller

我正在使用MPMediaPickerController从用户的音乐库中选择歌曲。将由用户选择的那些歌曲将使用AVAudioPlayer播放。

我的应用程序已经在应用程序商店中存在,但我收到了一些用户的报告,说我的应用程序存在错误。他们无法从他们的图书馆添加歌曲。

以下是我展示MPMediaPickerController的代码:

  MPMediaPickerController *picker = [[MPMediaPickerController alloc] initWithMediaTypes:  MPMediaTypeMusic];

  picker.delegate = self;
  picker.allowsPickingMultipleItems = YES;
  picker.showsCloudItems = NO;
  [picker setPreferredContentSize: CGSizeMake( 320, 440)];
  [self.navigationController presentViewController: picker animated: YES completion: nil];

以下是获取用户选择的歌曲的代码。

- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection 
{
    BOOL protectedDRMFileFound = NO;

   NSMutableArray *array = [[NSMutableArray alloc]init];

   for (MPMediaItem *mediaItem in [mediaItemCollection items])
   {

    if ([[mediaItem valueForProperty: MPMediaItemPropertyAssetURL]relativeString] != nil)
    //Note: DRM Protected file does not shows Asset URL so usually it is nil , if not nil it is not DRM Protected
       {
          [array addObject: mediaItem];
       }
       else
       {
         protectedDRMFileFound = YES;
       }   
  }

  if (protectedDRMFileFound)
    {
      UIAlertView *alert = [[UIAlertView alloc]initWithTitle: @""
                                                     message: @"One or more track cannot be played because it is DRM-protected or otherwise not available."
                                                    delegate: nil 
                                           cancelButtonTitle: @"OK" 
                                           otherButtonTitles: nil];

     [alert show];
   }


  userMediaCollection = array;
 } 

有些用户报告他们的歌曲不受DRM保护,他们无法从MPMediaPickerController中选择任何歌曲。我已经要求他们提供他们在我的应用程序上无法使用的歌曲副本进行测试。 在我的测试中,我还没有体验过将歌曲添加到我的应用程序时所经历的。我一直在思考我的应用程序可能出现的问题。有没有人遇到类似这个问题的东西。

0 个答案:

没有答案