1

私は iOS 開発に飛び込んでおり、プラットフォームでの開発方法を学ぶために、自分の目覚まし時計アプリをゆっくりと構築しています。目覚まし時計で、iOS デバイスに曲のリストを表示し、1 つだけを選択して、アラームが鳴ったときに再生できるようにしたい。を使用して曲のリストを表示し、再生する曲を MPMediaPlayer オブジェクトに伝えるために使用される にMPMediaPicker最終的に追加される曲をユーザーが選択できるようにする方法を理解しました。MPMediaItemCollectionこれがすべてのコードです...

- (IBAction) selectSong: (id) sender {  
MPMediaPickerController *picker =
[[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeMusic];

picker.delegate                                         = self;
picker.allowsPickingMultipleItems       = NO;
picker.prompt                                           = NSLocalizedString (@"Select any song from the list", @"Prompt to user to choose some songs to play");

[self presentModalViewController: picker animated: YES];
[picker release]; }

曲を保存...

- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection {

[self dismissModalViewControllerAnimated: YES];
selectedSongCollection=mediaItemCollection; }

ピッカーを閉じる...

- (void) mediaPickerDidCancel: (MPMediaPickerController *) mediaPicker {

[self dismissModalViewControllerAnimated: YES]; }

このコードを使用すると、アプリの実行中にいつでも曲を選択して再生できます。私の質問は...

  1. userInfoアラームがトリガーされたことを表すローカル通知の一部として含まれている辞書に、その曲の情報を保存するにはどうすればよいですか?
  2. もう 1 つの質問は、ローカル通知からその曲の情報を取得できたら、どうすれば再生できるのでしょうか?

私はこれらすべてに慣れていないので、これがどのように機能するかを理解するのに本当に苦労しています. ご協力いただきありがとうございます。

4

1 に答える 1

1

ユーザー情報ディクショナリに返されたコレクションからrepresentativeItemを保存します

曲を再生する場合は、MPMediaQueryを使用して特定の曲を再生します。

http://developer.apple.com/iphone/library/documentation/mediaplayer/reference/MPMediaQuery_ClassReference/Reference/Reference.html#//apple_ref/doc/uid/TP40008220

保存されている曲をクエリする方法の詳細

http://developer.apple.com/iphone/library/documentation/mediaplayer/reference/MPMediaPropertyPredicate_ClassReference/Reference/Reference.html#//apple_ref/occ/clm/MPMediaPropertyPredicate/predicateWithValue:forProperty

データのクエリに関するAppleのドキュメントと例

于 2010-08-28T23:32:08.490 に答える