基于MediaPicker的iOS应用程序不播放所有歌曲

时间:2014-09-23 17:49:02

标签: ios objective-c avfoundation avaudioplayer mpmediapickercontroller

我一直在查看此tutorial,了解如何在iPhone上的用户音乐库中查找歌曲。一切都按照预期的方式工作,除了购买但不能在用户手机上播放的歌曲不播放。

有没有人知道解决此问题的方法,或者知道如何测试以查看该歌曲是否已购买并安装,然后提醒用户?

以下是我在选择和播放歌曲的教程中使用的代码:

/*
 * This method is called when the user presses button. It displays a media picker
 * screen to the user configured to show only audio files.
 */
- (IBAction)pickSong:(id)sender
{
    MPMediaPickerController *picker = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeAnyAudio];
    [picker setDelegate:self];
    [picker setAllowsPickingMultipleItems: NO];
    [self presentViewController:picker animated:YES completion:NULL];

}


#pragma mark - Media Picker Delegate

/*
 * This method is called when the user chooses something from the media picker screen. It dismisses the media picker screen
 * and plays the selected song.
 */
- (void)mediaPicker:(MPMediaPickerController *) mediaPicker didPickMediaItems:(MPMediaItemCollection *) collection {

    // remove the media picker screen
    [self dismissViewControllerAnimated:YES completion:NULL];

    // grab the first selection (media picker is capable of returning more than one selected item,
    // but this app only deals with one song at a time)
    MPMediaItem *item = [[collection items] objectAtIndex:0];

    // display title of song in a navigation bar
    //NSString *title = [item valueForProperty:MPMediaItemPropertyTitle];
    //[_navBar.topItem setTitle:title];

    // get a URL reference to the selected item
    NSURL *url = [item valueForProperty:MPMediaItemPropertyAssetURL];

    // pass the URL to playURL:, defined earlier in this file
    [self playURL:url];
}

0 个答案:

没有答案