【问题标题】:How to enable audio scrubber in iOS Lock Screen control panel?如何在 iOS 锁屏控制面板中启用音频清理器?
【发布时间】:2013-09-27 06:54:35
【问题描述】:

我有以下 MPNowPlayingInfoCenter 字典

@{MPMediaItemPropertyAlbumTitle: @"First Title",
                                MPMediaItemPropertyArtwork: [[MPMediaItemArtwork alloc] initWithImage:[UIImage imageNamed:@"Album-Cover.jpg"]],
                                MPMediaItemPropertyPlaybackDuration:[NSNumber numberWithDouble:self.storyAudioPlayer.duration],
                                MPNowPlayingInfoPropertyElapsedPlaybackTime:[NSNumber numberWithDouble:self.storyAudioPlayer.currentTime],
                                MPNowPlayingInfoPropertyPlaybackRate:@1.0
                                }

其他一切正常,但我无法使用滑块搜索歌曲。如图所示。我缺少什么参数?

【问题讨论】:

  • 有没有什么技巧可以让按钮在 iOS 7 中工作?在 iOS 6 中,双击主页音频控件对我来说很好用,但在 iOS 7 中,控制中心按钮不会将事件发送到我的应用程序。开发者论坛上有一个帖子,人们说这似乎是iOS 7 错误。谢谢。
  • 你知道怎么做吗(洗涤器)?
  • @Tenfour04 no.. 只需添加 [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; in viewDidAppear 似乎对我有用
  • @SG1 不:|你也在寻找同样的东西吗?
  • 实际上,我发现它只在我的 Verizon iPhone 5 上不起作用。它不适用于该手机上的任何第三方应用程序。在我的所有其他测试设备上运行良好。我感觉没有为第三方应用启用此清理器,因为与它相关的任何内容都没有添加到远程控制事件的常量中。

标签: ios avaudioplayer avaudiosession mpnowplayinginfocenter


【解决方案1】:

借助 MPRemoteCommandCenter 和 changePlaybackPositionCommand,您可以在 iOS 9.1 及更高版本上执行此操作。

见我的answer

【讨论】:

    【解决方案2】:

    你不能。您可以向 Apple 提交错误报告,以便他们有朝一日实施。

    编辑:现在可以从 iOS 9 开始执行此操作

    【讨论】:

    • 不可以,有一个名为 HABU 的第 3 方应用程序可以让您搜索。我也在寻找如何做的答案。 itunes.apple.com/au/app/habu-music/id540535146?mt=8
    • @Desmond 该应用正在使用音乐应用播放其音乐。这是完全不同的事情,音乐需要已经在图书馆中。
    • 嗨@lap.flix,你是对的,我检查了应用程序和其他应用程序,如Spotify,他们使用不同的控制器。
    • @desmond 如果这对您很重要,您可以在 Apple 的错误报告工具上填写功能请求。他们获得的重复越多,您获得的优先级就越高(这是一个奇怪的系统,但这就是他们的滚动方式,这是一种逻辑)
    【解决方案3】:

    斯威夫特 5

    您可以使用MPRemoteCommandCenter.changePlaybackPositionCommand 来完成。

    用于改变媒体项目中播放位置的命令对象。

    let commandCenter = MPRemoteCommandCenter.shared()
        commandCenter.changePlaybackPositionCommand.isEnabled = true
        commandCenter.changePlaybackPositionCommand.addTarget { event in
            if let event = event as? MPChangePlaybackPositionCommandEvent {
                let time = CMTime(seconds: event.positionTime, preferredTimescale: 1000000)
                self.avplayer.seekTo(time)
            }
            return .success
        }
    

    【讨论】:

      猜你喜欢
      • 2017-12-28
      • 2019-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 2016-04-13
      相关资源
      最近更新 更多