在 iPad 锁定屏幕(背景)上显示 AVAudioplayer 持续时间和经过时间

Posted

技术标签:

【中文标题】在 iPad 锁定屏幕(背景)上显示 AVAudioplayer 持续时间和经过时间【英文标题】:Displaying AVAudio player duration and elapsed time on iPad lock screen (background) 【发布时间】:2015-03-29 05:47:02 【问题描述】:

到目前为止,这是我尝试让锁定屏幕显示音频 mp3 文件已经过去(经过)多少时间以及音频 mp3 文件总共有多少时间......

这是我的对象数组:

NSArray *madMoneyArray = [NSArray arrayWithObjects:[NSString stringWithFormat:@"Episode %d", a],
                              @"Jim Cramer",
                              @"Mad Money Podcast",
                              madMoneyArtwork,
                              [NSNumber numberWithFloat:(float)_audioPlayer.currentPlaybackTime],
                              [NSNumber numberWithDouble:(double)_audioPlayer.duration],
                              [NSNumber numberWithDouble:(double)1.0],
                              @"MadMoneyPodcast.png",
                              madMoneyURL, nil];

这是我的键数组:

NSArray *array = [NSArray arrayWithObjects:MPMediaItemPropertyTitle,
                  MPMediaItemPropertyArtist,
                  MPMediaItemPropertyAlbumTitle,
                  MPMediaItemPropertyArtwork,
                  MPNowPlayingInfoPropertyElapsedPlaybackTime,
                  MPMediaItemPropertyPlaybackDuration,
                  MPNowPlayingInfoPropertyPlaybackRate, nil];

我成功地将对象及其键放入 MPNowPlayingInfoCenter defaultCenter 中:

songInfo = [NSDictionary dictionaryWithObjects:[[_podcastArray objectAtIndex:(value - 1)] subarrayWithRange:NSMakeRange(0, imageIndex)] forKeys:_keys];
[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo];

播客数组是我保存多个包含这些对象和键的数组的地方。现在,当我进入锁定屏幕时,会显示我想要显示的所有内容(即:标题、艺术家姓名、专辑名称、专辑插图)。但是,我无法显示的一件事是愚蠢的经过时间和持续时间。

我做了很多研究并实施了我认为正确的事情,但显然它不正确/有效。

我真的可以在这里得到一些帮助,谢谢。

【问题讨论】:

【参考方案1】:

尝试替换

[NSNumber numberWithFloat:(float)_audioPlayer.currentPlaybackTime]

[NSNumber numberWithDouble:_audioPlayer.currentPlaybackTime]

还要检查 _audioPlayer.duration 是否不为 0。

【讨论】:

【参考方案2】:

你的 ma​​dMoneyArray 有一些额外的值用这个替换这个数组

NSArray *madMoneyArray = [NSArray arrayWithObjects:[NSString stringWithFormat:@"Episode %d", a],
                              @"Jim Cramer",
                              @"Mad Money Podcast",
                              madMoneyArtwork,
                              [NSNumber numberWithFloat:(float)_audioPlayer.currentPlaybackTime],
                              [NSNumber numberWithDouble:(double)_audioPlayer.duration],
                             [NSNumber numberWithInt:1],
                             nil];

试试这个,希望对你有帮助!!!

【讨论】:

以上是关于在 iPad 锁定屏幕(背景)上显示 AVAudioplayer 持续时间和经过时间的主要内容,如果未能解决你的问题,请参考以下文章

在 iPad 上使用 UIActionSheet 时暗淡并锁定背景

在 iPad 上锁定 UIViewController 方向

使 iPad 屏幕关闭,但通过触摸唤醒(无锁定) - - iOS 6.0 / openFrameworks

在 iOS 14 中锁定屏幕方向

如何在锁定屏幕上放置笔记/提醒

如何在 Flutter 中锁定手机屏幕方向? (不在选项卡/ iPad 中)