чтобы разрешить пользователю выбрать песню (или песни) из своей музыкальной библиотеки, использовать MPMediaPickerController
класс.
-(void) pickSong {
// Create picker view
MPMediaPickerController* picker = [[MPMediaPickerController alloc] init];
picker.delegate = self;
// Check how to display
if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) {
// Show in popover
[popover dismissPopoverAnimated:YES];
popover = [[UIPopoverController alloc] initWithContentViewController:picker];
[popover presentPopoverFromBarButtonItem:self.navigationItem.rightBarButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
} else {
// Present modally
[self presentViewController:picker animated:YES completion:nil];
}
}
Изменить self.navigationItem.rightBarButtonItem
если вы не показывать его с помощью кнопки на правой стороне строки заголовка.
Тогда вы должны слушать результата от реализации делегата:
Вызывается, когда пользователь отменил выбор:
-(void) mediaPickerDidCancel:(MPMediaPickerController *)mediaPicker {
// Dismiss selection view
[self dismissViewControllerAnimated:YES completion:nil];
[popover dismissPopoverAnimated:YES];
popover = nil;
}
Вызывается, когда пользователь выбрал что-то:
-(void) mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection {
// Dismiss selection view
[self dismissViewControllerAnimated:YES completion:nil];
[popover dismissPopoverAnimated:YES];
popover = nil;
// Get AVAsset
NSURL* assetUrl = [mediaItemCollection.representativeItem valueForProperty:MPMediaItemPropertyAssetURL];
AVURLAsset* asset = [AVURLAsset URLAssetWithURL:assetUrl options:nil];
// Create player item
AVPlayerItem* playerItem = [AVPlayerItem playerItemWithAsset:asset];
// Play it
AVPlayer* myPlayer = [AVPlayer playerWithPlayerItem:playerItem];
[myPlayer play];
}
Вам понадобится UIPopoverController* popover;
в вашей группе ss .h файл. Также вы должны сохранить myPlayer
где-то ...
Чтобы музыка продолжалась в фоновом режиме, добавьте строку audio
в массив в Info.plist под ключом UIBackgroundModes
.
И я хочу, чтобы на Гавайях был весь дорогой месячный отпуск :) –
С другой стороны, задан вопрос - кто-то получил ответ –
Я работал над классом mpmusicplayercontroller ... но он не поддерживает фоновый режим , я слышал, что avplayer поддерживает фоновое воспроизведение – coded