【问题标题】:check whether headphones are plugged in when app starts应用启动时检查耳机是否插入
【发布时间】:2013-10-28 11:31:54
【问题描述】:

很抱歉提出这个问题,这里再次讨论了很多次。但是没有一个答案对我有帮助。我只需要在viewDidLoad 中输入一些简单的代码来检查耳机是否已插入。 (如果他们不是我想弹出简单的消息,但这不是我要问的怎么做。)有什么帮助吗?

【问题讨论】:

  • 这是一个很好的问题!感谢提问,学习答案很有趣。

标签: iphone objective-c headphones


【解决方案1】:

这应该可以实现你想要的(iOS 6+ 兼容)

- (BOOL)areHeadphonesPluggedIn {
    NSArray *availableOutputs = [[AVAudioSession sharedInstance] currentRoute].outputs;
    for (AVAudioSessionPortDescription *portDescription in availableOutputs) {
        if ([portDescription.portType isEqualToString:AVAudioSessionPortHeadphones]) {
            return YES;
        }
    }
    return NO;
}

【讨论】:

  • 效果很好!谢谢。无论如何,对于较旧的 iOS,还有其他解决方案吗?
  • 我没试过,但是有几个线程。这是一个例子:stackoverflow.com/questions/10685313/…
  • 谢谢,这适用于 iOS9。有许多旧字符串在讨论这个话题,但它们似乎已经过时了。
【解决方案2】:

这是 Gabriele Petronella 编写的 Swift 1.2 版本代码

//This method checks if headphones are plugged in.

func areHeadphonesPluggedIn()->Bool
{
    var availableOutputs = AVAudioSession.sharedInstance().currentRoute.outputs
    for portDescription in availableOutputs
    {
        if portDescription.portType == AVAudioSessionPortHeadphones
        {
            return true
        }
    }
    return false
}

【讨论】:

    猜你喜欢
    • 2013-04-29
    • 1970-01-01
    • 2017-04-24
    • 2011-04-04
    • 1970-01-01
    • 2011-09-09
    • 2016-02-25
    • 2013-04-17
    • 2012-05-27
    相关资源
    最近更新 更多