【问题标题】:Check if iOS is playing music ("Is button in control center Pause?")检查 iOS 是否正在播放音乐(“控制中心的按钮是否暂停?”)
【发布时间】:2017-10-17 13:21:38
【问题描述】:

如果用户正在播放任何音乐,我想检查我的应用。基本上我想知道控制中心的按钮是否显示暂停而不是播放(从那时起手机正在播放一些音乐)。我不想使用来自here 的解决方案,因为例如在通话时也是如此。

【问题讨论】:

    标签: ios objective-c jailbreak iphone-privateapi


    【解决方案1】:

    找到了两种方式,但是对于这两种方式都需要Springboard。由于应用程序和工具位于沙盒中,因此这些解决方案只能在挂钩到 Springboard 的 Tweak 中使用!

    第一:

    @interface SBMediaController : NSObject
    + (id)sharedInstance;
    - (BOOL)isPlaying;
    @end
    
    bool isMusicPlaying = [[%c(SBMediaController) sharedInstance] isPlaying]; // this is always false if not hooked into Springboard!
    

    第二个(这个方案是异步的):

    #import <MediaRemote/MediaRemote.h> // also add MediaRemote to your XXX_PRIVATE_FRAMEWORKS
    
    MRMediaRemoteGetNowPlayingInfo(dispatch_get_main_queue(), ^(CFDictionaryRef information) {
      NSDictionary *dict=(__bridge NSDictionary *)(information);
      if( dict != NULL && [dict objectForKey:(__bridge NSString *)kMRMediaRemoteNowPlayingInfoPlaybackRate] != NULL ){
        float rate = [[dict objectForKey:(__bridge NSString *)kMRMediaRemoteNowPlayingInfoPlaybackRate] floatValue];
        NSLog(@"playbackRate %f", rate);
        bool isMusicPlaying = rate > 0.0;
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 2013-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多