iOS 6 と 7 の間で 2 つの奇妙な分岐動作があります。
MPMediaPicker をエンド ユーザーに提示し、1 曲を選択して再生を開始できるようにしたいと考えています。
そこで、MPMediaPicker (サポートされている場合は /not/ multi、および /not/ cloud) を示します。
2 つの問題:
- iOS6 では、MPMediaPicker の最初の画面に曲が表示されます。iOS7 では、(空の) プレイリストです。MPMediaPicker に曲をデフォルトの最初の画面として表示させるにはどうすればよいですか? これは Apple が「よく知っている」ことのもう 1 つの例ですか?
- iOS7 では、リスト内のメディア アイテムの横に赤い (+) 記号が表示されます。その原因は何ですか?グーグルでそのための参照を見つけることができませんでした。(+) 記号は何ですか? 表の行とは別に強調表示されていないようです。ネイティブ メディア ピッカーはこれを表示しません。
ありがとう!
-ケン
MPMediaPicker コード:
- (void)showSongPicker {
// TODO check if iOS 6
MPMediaPickerController* songPicker = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeMusic];
songPicker.delegate = self;
songPicker.allowsPickingMultipleItems = NO;
songPicker.showsCloudItems = NO;
[self presentViewController:songPicker animated:YES completion:nil];
[self presentModalViewController:songPicker animated:YES];
}
#pragma mark MPMediaPickerControllerDelegate
- (void)mediaPicker: (MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection {
MPMediaItem* item = [mediaItemCollection.items objectAtIndex:0];
[self playMediaItem:item];
[self mediaPickerDidCancel:mediaPicker];
}
- (void)mediaPickerDidCancel:(MPMediaPickerController *)mediaPicker {
[self dismissViewControllerAnimated:YES completion:nil];
}