【发布时间】:2014-01-10 20:17:59
【问题描述】:
我正在编写一个播放音频的应用程序,我正在尝试获取当前曲目信息以显示在锁定屏幕和控制面板上。这是我正在使用的代码:
- (void)setupNowPlayingInfo:(MPMediaItem*)mi
{
NSArray* keys = @[MPMediaItemPropertyAlbumTitle,
MPMediaItemPropertyAlbumTrackCount,
MPMediaItemPropertyAlbumTrackNumber,
MPMediaItemPropertyArtist,
MPMediaItemPropertyArtwork,
MPMediaItemPropertyComposer,
MPMediaItemPropertyDiscCount,
MPMediaItemPropertyDiscNumber,
MPMediaItemPropertyGenre,
MPMediaItemPropertyPersistentID,
MPMediaItemPropertyPlaybackDuration,
MPMediaItemPropertyTitle];
NSMutableDictionary* d = [NSMutableDictionary dictionary];
for (NSString* key in keys) {
if ([mi valueForProperty:key]) {
d[key] = [mi valueForProperty:key];
}
}
d[MPNowPlayingInfoPropertyElapsedPlaybackTime] = @0.5; // TODO:
d[MPNowPlayingInfoPropertyPlaybackRate] = @1;
d[MPNowPlayingInfoPropertyPlaybackQueueIndex] = @(self.currentSongIndex);
d[MPNowPlayingInfoPropertyPlaybackQueueCount] = @(self.songs.count);
d[MPNowPlayingInfoPropertyChapterNumber] = @0;
d[MPNowPlayingInfoPropertyChapterCount] = @0;
[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = d;
}
这没有效果。我在远程控制事件的文档中看到了这个有趣的行(这对我也不起作用):
您的应用必须是“正在播放”应用。重述,即使您的应用是 第一响应者并且您已打开事件传递,您的应用程序 在开始播放音频之前不会接收远程控制事件。
我的应用需要做什么才能成为“正在播放”应用?肯定是在播放音频。
知道我只需要在 iOS 7 上使用它可能是相关的,而且我使用的是The Amazing Audio Engine。
【问题讨论】: