问题标签 [mpnowplayinginfocenter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
507 浏览

ios - 如何获取背景音频的当前时间?(iOS)

我有音频应用程序。对于收听音频,我使用AVFoundationFramework并在后台使用MPNowPlayingInfoCenter提供信息。如果用户继续到其他屏幕,则正在播放音频。我想向他展示有关在这个新屏幕上播放音频的信息。最大的问题是获取当前播放背景音频的时间。我怎么才能得到它?

PS:音频长度主要等于一小时。

PPS:我很高兴得到任何语言的答案(obj-c/Swift)

编辑:在 iOS 远程中心显示真实信息,我只需要在代码中获取它...截图: http: //postimg.org/image/9lv60eb1n/

0 投票
1 回答
2215 浏览

ios - 更新 MPRemoteCommandCenter 播放/暂停按钮

我有一个 iOS 9 应用程序,它使用 AudioGraph 播放类似 MIDI 的歌曲。我已经设置了远程控制命令MPRemoteCommandCenter和信息,MPNowPlayingInfoCenter以便当前播放的歌曲显示在控制中心并响应控制中心按钮按下或耳机按钮按下。点击控制中心中的暂停按钮会暂停我的歌曲,但控制中心中的播放头会继续移动,并且该按钮仍为暂停图标。再次点击它只会继续调用暂停。

有没有办法更新MPNowPlayingInfoCenterorMPRemoteCommandCenter状态,以便控制中心知道歌曲已暂停?

我尝试过的解决方案:

  • 设置和enabled_playCommandpauseCommand

    没有效果

  • 设置MPNowPlayingInfoPropertyPlaybackRate0_MPNowPlayingInfoCenter

    停止播放头前进(如果我没有明确设置它,则重置经过的时间),但按钮仍然是暂停按钮

  • 停止我的音频引擎并调用AVAudioSession.setActive(false)

    这似乎确实有效,但速度很慢,会导致音频故障,即使歌曲暂停,我的应用程序的其他部分也依赖于音频引擎的运行

0 投票
1 回答
89 浏览

ios - 在接收 UIEventSubtypeRemoteControlPause 时更改 UIButton 图像 - Objective c - iOS

在使用 AVPlayer 播放时,我已成功设法在锁屏中获得音乐控件,但问题是当用户在锁屏中按下播放/暂停按钮时(根据播放器状态),我想更改 UIButon 图像。多亏了这一点,如果用户在播放器暂停时解锁设备,则 UIButton 的图像代表状态。

我可以通过这些操作做任何我想做的事情,但似乎 UI 更改是不可能的......

有没有可能?

提前致谢 !

编辑:这是我在应用程序中用于更改 UIButton 图像的代码(在锁屏时不起作用):

0 投票
0 回答
249 浏览

ios - MPNowPlayingInfoCenter 消失了所有价值

如果正在播放歌曲并且用户锁定了他的 iPhone,我想在锁定屏幕上显示播放(搜索栏、下一个按钮和上一个按钮)和歌曲名称、艺术家姓名、图像等。但我有一个问题。问题是 MPNowPlayingInfoCenter 信息值显示一次 1-2 秒后,所有值将自动消失,之后显示默认值。

下面的截图1是完美的,但是在1-2之后这个所有值都消失了,看截图2所有值都消失了

截图 1

截图 2

0 投票
3 回答
727 浏览

ios - MPNowPlayingInfoCenter 播放暂停图像不改变

我正在使用下面的代码。一旦应用程序进入后台,这段代码就可以完美运行。如果应用程序没有进入后台并且我们尝试播放和暂停当前正在播放的歌曲,则播放和暂停图像不会改变。在这种情况下,每次断点都会出现广告case UIEventSubtypeRemoteControlPause:

谢谢!

0 投票
1 回答
5276 浏览

ios - 如何从 MPRemoteCommandCenter 禁用所有 MPRemoteCommand 对象

Apple 文档说“您可以通过将其 enabled 属性设置为 NO 来禁用相应的 MPRemoteCommand 对象。”

我提到了是否有一种公共方式可以强制 MPNowPlayingInfoCenter 显示播客控件?我能够禁用/启用锁定屏幕控制上的特定命令。

但是我想禁用锁定屏幕控制中的所有控件,因为我正在播放收音机并且它不支持任何一个操作 - “播放/暂停/下一个/上一个”

我尝试了以下代码片段:

然而它没有用。禁用一切会启用锁定屏幕上的暂停、上一个、下一个按钮。任何帮助将不胜感激。

0 投票
0 回答
463 浏览

ios - MPNowPlayingInfoCenter 持续时间未显示

我正在尝试用 Swift 2.2 (Xcode 7) 编写一个可以播放音频的 iOS 9 应用程序。我所有的文件都是从互联网上读取的,所以我选择了StreamingKit并且可以从多个 ViewController 在后台播放,所以我创建了一个存储音频播放器实例的单例。

我成功让播放器在后台播放音频并在 NowPlayingInfoCenter 中显示信息,但我无法获得工作持续时间我得到了这个结果

在此处输入图像描述

当我开始播放我的文件时,我用这些行初始化 MPNowPlayingInfo

当缓冲完成时,我用这些行设置附加信息

上面我的 NSNumber 构造函数中传递的值的示例(从调试器中检索):进度 = 1.892426303854875 持续时间 = 62.85865814546887

我还尝试像这个答案一样传递格式化的 NSString ,例如在调试器中检索到的这些值:进度 = 0:02 持续时间 = 1:03

播放器时长和搜索栏还是和截图一样

任何人都可以帮助我吗?谢谢

0 投票
1 回答
1094 浏览

ios - MPNowPlayingInfoCenter 遥控器在 iOS 10 中响应不正确

iOS 10中,控制中心UI 进行了重新设计,从那时起,播放/暂停控制按钮的响应不同。

无法暂停的内容不应在每次点击时更改控制中心的播放/暂停按钮。

iOS 10之前,它可能正在检查MPNowPlayingInfoPropertyPlaybackRate,如果内容没有暂停,它不会更改遥控器。在iOS 10中,它每次都会立即更改而忽略MPNowPlayingInfoPropertyPlaybackRate

0 投票
1 回答
1342 浏览

ios - 有没有办法防止 AVPlayerViewController 通过 MPNowPlayingInfoCenter 更新锁屏?

这是我的问题:我有一个应用程序正在播放音频文件,通过 更新锁屏信息MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo,这部分工作正常。

但在另一个视图中,我正在使用AVPlayerViewControllerand播放视频AVPlayer,当视频开始播放时,它会自动更新锁定屏幕,除了视频持续时间之外什么都没有。

我在 Apple 的文档中没有找到任何关于这种行为的信息,我找不到禁用它的方法。

到目前为止,我已经尝试UIApplication.sharedApplication().endReceivingRemoteControlEvents()在视频开始播放之前和beginReceivingRemoteControlEvents()之后打电话。它不起作用。

有谁知道防止这种情况的方法?

0 投票
1 回答
971 浏览

ios - MPNowPlayingInfoCenter 不显示上一个和下一个按钮

我正在使用 播放视频AVPlayerViewController,我注意到在现在播放中心,上一个和下一个按钮被替换为 15 秒来回搜索按钮。问题是我需要上一个和下一个按钮可见。我也将updatesNowPlayingInfoCenter属性设置为NO.

请参阅下面的图片以更好地理解:

当前用户界面:

在此处输入图像描述

想要的结果:

在此处输入图像描述