MPNowPlayingInfoCenterの更新に取り組んでおり、少し問題があります。私は途方に暮れるところまでかなり努力しました。以下は私のコードです:
_ self.audioPlayer.allowsAirPlay = NO;
Class playingInfoCenter = NSClassFromString(@"MPNowPlayingInfoCenter");
if (playingInfoCenter) {
NSMutableDictionary *songInfo = [[NSMutableDictionary alloc] init];
MPMediaItemArtwork *albumArt = [[MPMediaItemArtwork alloc] initWithImage:[UIImage imageNamed:@"series_placeholder"]];
[songInfo setObject:thePodcast.title forKey:MPMediaItemPropertyTitle];
[songInfo setObject:thePodcast.author forKey:MPMediaItemPropertyArtist];
[songInfo setObject:@"NCC" forKey:MPMediaItemPropertyAlbumTitle];
[songInfo setObject:albumArt forKey:MPMediaItemPropertyArtwork];
[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo];
}
_
これは機能していません、私も試しました:
_ [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:nil];
_
IPodアプリ(またはそこに情報があるかもしれないもの)から既存の情報を削除するためにそれを取得しようとしています。さらに、問題を見つけることができるかどうかを確認するために、アプリの起動時に現在の情報を取得しようとしました。
_ NSDictionary *info = [[MPNowPlayingInfoCenter defaultCenter] nowPlayingInfo];
NSString *title = [info valueForKey:MPMediaItemPropertyTitle];
NSString *author = [info valueForKey:MPMediaItemPropertyArtist];
NSLog(@"Currently playing: %@ // %@", title, author);
_
そして私はCurrently playing: (null) // (null)
を取得します
私はこれをかなり研究しました、そして以下の記事はそれをかなり徹底的に説明します、しかし私はまだこれをきちんと働かせることができません。私は何かが足りないのですか?これを妨げるものはありますか?これは、アプリがアクセスするために登録する必要があるサービスですか(これはどのドキュメントにも表示されていません)?
私はついに問題を理解しました。リモートコントロールイベントを受信するようにアプリにプロンプトを表示するのではなく、次の行を追加するだけで問題が修正されました。
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
私は以下のコードを使用し、それは常に機能します。私もあなたのようにMPMoviePlayer
を使っています。 NSClassFromString(@"MPNowPlayingInfoCenter")
が実際にYES
を返すかどうかを確認しましたか? plistのバックグラウンドキーでアプリの再生オーディオを設定しましたか?
- (void) loadMPInformation
{
NSDictionary *mpInfo;
if([savedTrack.belongingAlbum.hasAlbumArt boolValue] == NO){
mpInfo = [NSDictionary dictionaryWithObjectsAndKeys:savedTrack.belongingAlbum.album, MPMediaItemPropertyAlbumTitle,
savedTrack.belongingArtist.artist, MPMediaItemPropertyArtist, savedTrack.name, MPMediaItemPropertyTitle, nil];
} else {
UIImage *artImage = [UIImage imageWithData:savedTrack.belongingAlbum.art];
MPMediaItemArtwork *artwork = [[MPMediaItemArtwork alloc] initWithImage:artImage];
mpInfo = [NSDictionary dictionaryWithObjectsAndKeys:savedTrack.belongingAlbum.album, MPMediaItemPropertyAlbumTitle,
savedTrack.belongingArtist.artist, MPMediaItemPropertyArtist, savedTrack.name, MPMediaItemPropertyTitle, artwork, MPMediaItemPropertyArtwork, nil];
}
[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = mpInfo;
}