- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在出于自己的目的编写一个应用程序,旨在无论系统中发生什么情况都能获取播放暂停事件。我已经做了这么多工作
let commandCenter = MPRemoteCommandCenter.shared()
commandCenter.togglePlayPauseCommand.isEnabled = true
commandCenter.togglePlayPauseCommand.addTarget { (MPRemoteCommandEvent) -> MPRemoteCommandHandlerStatus in
print("Play Pause Command")
return .success
}
commandCenter.nextTrackCommand.isEnabled = true
commandCenter.nextTrackCommand.addTarget { (MPRemoteCommandEvent) -> MPRemoteCommandHandlerStatus in
print("NextTrackCommand")
return .success
}
commandCenter.previousTrackCommand.isEnabled = true
commandCenter.previousTrackCommand.addTarget { (MPRemoteCommandEvent) -> MPRemoteCommandHandlerStatus in
print("previousTrackCommand")
return .success
}
commandCenter.playCommand.isEnabled = true
commandCenter.playCommand.addTarget { (MPRemoteCommandEvent) -> MPRemoteCommandHandlerStatus in
print("playCommand")
return .success
}
MPNowPlayingInfoCenter.default().playbackState = .playing
大多数这些方法都在那里,因为显然如果没有实现 nextTrackCommand 或 previousTrackCommand 或 playCommand,您将不会收到任何通知。
无论如何,我的一个问题是,一旦您打开另一个使用音频的应用程序,这些事件处理程序就会停止被调用,并且我找不到一种方法来检测和修复此问题。
我通常会尝试执行 AVAudioSession 操作来将其声明为后台应用程序,但这似乎不起作用。无论系统处于什么状态,关于如何获取 playpause 事件有什么想法吗?
我希望能够始终监听这些事件或获得其他人何时控制音频的指示?也许甚至能够重新订阅这些播放暂停事件。
最佳答案
系统中有一个内部队列,其中包含所有音频事件订阅者。当您开始使用其他应用程序时,它们就会超越它。
I would like to be able to always listen for these events
没有可用的 API,但有一个肮脏的解决方法。如果我正确理解你的问题,这个片段:
MPNowPlayingInfoCenter.default().playbackState = .paused
MPNowPlayingInfoCenter.default().playbackState = .playing
如果您在应用程序中的某处循环运行它,则必须为您解决问题。
请注意,这并不是 100% 可靠,因为:
playbackState
状态更改之前生成事件,则事件窗口中的应用程序仍会捕获该事件;引用文献:
MPRemoteCommandCenter
之前的一个,但仍然非常有值(value))OR get an indication of when someone else has taken control of the audio
据我所知,macOS 中没有为此提供公共(public) API。
关于xcode - MacOS 在后台不响应 MPRemoteCommandCenter 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61296319/
我正在制作一个 iPhone 音乐应用程序来处理音乐播放和暂停并维护自己的播放列表。我正在尝试使播放/暂停 Remote 功能(在耳塞和上滑屏幕上)适用于我的应用程序中的音乐播放。 下面是我在音乐播放
如何从通知中心删除 MPRemoteCommandCenter.shared()。我尝试了这段代码,但只有命令和操作被禁用。我需要从通知中心删除完整的通知。当我们终止应用程序时,它不会出现在通知栏中,
亲爱的同事们,您好,我需要您的帮助。当我添加 MPChangePlaybackPositionCommand 时,我的所有控件(锁定屏幕上的播放/暂停/倒播/下一首轨道)已自动禁用。锁屏上的播放 sl
MPRemoteCommandCenter 有两个问题: 1) 当我换歌时, Remote 删除上一首歌曲图像,制作默认歌曲图像,制作下一首歌曲图像。我不想看到默认图像。我花了一些时间来寻找解决方案。
我已经实现了播放音频的 Avplayer。我已经使用 MPRemoteCommandCenter 来访问锁定屏幕。我可以通过以下方式获得所有访问权限: let commandCenter =
我正在开发一个处理 MPRemoteCommandCenter 类的录音应用程序。我已经设置了命令中心来播放和暂停命令。下面添加了代码片段。我遇到了 pauseCommand 的问题。 我从应用程序开
我在 MPRemoteCommandCenter 中切换播放和暂停按钮时遇到问题。无论出于何种原因,音频和事件都将正常工作,但命令中心不会将播放按钮更改为暂停按钮。这是我的代码... - (void)
我有一个显示 .m3u8 流的视频播放器。我已尝试实现远程控制,但该小部件并未同时出现在锁定屏幕、通知中心和命令中心中。 我只需要有播放暂停、音量控制和一些静态信息,如标题、艺术家和艺术作品。 这是我
我正在出于自己的目的编写一个应用程序,旨在无论系统中发生什么情况都能获取播放暂停事件。我已经做了这么多工作 let commandCenter = MPRemoteCommandCenter.shar
我有一个 iOS 9 应用程序,它使用 AudioGraph 播放类似 MIDI 的歌曲。我已经使用 MPRemoteCommandCenter 设置了远程控制命令,并使用 MPNowPlayingI
我在 iPhone 上使用 MPRemoteCommandCenter 和 MPMusicPlayerController.applicationMusicPlayer。 我正在尝试在用户播放音乐并双
我正在开发用 Swift 编写的音乐播放器应用程序,使用 AVPlayer 播放音频流,一切都很好 但是当我尝试将 MPRemoteCommandCenter 添加到我的应用程序时,出现了很多错误,我
我不知道如何切换播放和暂停按钮。我试过 TogglePlayPauseCommand。但它不起作用。 最佳答案 您能否发布有关如何尝试实现 TogglePlayPauseCommand 的代码?我认为
我一直在编写使用 [MPMusicPlayerController applicationMusicPlayer] 播放音乐的代码。 这已成功运行,并将在控制中心屏幕上显示当前播放轨道的详细信息。 不
我正在构建一个音乐播放器应用,一切正常。到目前为止,我一直在使用系统音乐播放器,但现在想改用应用程序音乐播放器,这就是我遇到问题的地方——我这辈子都不知道如何获得我的音乐播放器从 iOS 控制中心调用
MPRemoteCommandCenter 多次调用处理程序 block 并导致对选择器方法的不必要调用。 这是代码片段: MPRemoteCommandCenter *commandCenter =
我目前正在使用 AVSpeechSynthesizer 进行文本转语音。用于播放的类别是 AVAudioSessionCategoryPlayback 并且 AVAudioSession 设置为 Ac
我正在使用 MPRemoteCommandCenter 更改我的音乐广播应用程序中的歌曲。但是当我从锁定屏幕按下下一首轨道按钮时,它会跳 3 步而不是一步。 这是我的代码: func setupRem
我正在将 MPNowPlayingInfoCenter 集成到音乐播放应用中。当我在 iOS 模拟器中运行它时,它与 MPRemoteCommandCenter 的集成工作得很好。当我在设备上运行相同
Apple doc说“您可以通过将其启用属性设置为 NO 来禁用相应的 MPRemoteCommand 对象。” 我提到了 Is there a public way to force MPNowPl
我是一名优秀的程序员,十分优秀!