ipod ライブラリから曲を選択し、avplayer を使用して再生したい アプリがバックグラウンドになった後も音楽を再生し続けたい iOS プログラミングが初めてなので、誰か助けてもらえますか ..
ありがとう
ipod ライブラリから曲を選択し、avplayer を使用して再生したい アプリがバックグラウンドになった後も音楽を再生し続けたい iOS プログラミングが初めてなので、誰か助けてもらえますか ..
ありがとう
ユーザーが自分の音楽ライブラリから1つまたは複数の曲を選択できるようにするには、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;
クラスの.hファイルにが必要です。また、myPlayer
どこかに保持する必要があります...
audio
音楽をバックグラウンドで継続できるようにするには、キーの下のInfo.plistの配列に文字列を追加しUIBackgroundModes
ます。