耳机是否已插入? IOS 7

2024-01-31

为 iPhone 开发一个应用程序,其中包含也需要通过耳机收听的音频文件。

如何检查耳机是否未插入,以便我可以告诉用户插入耳机。

我有来自另一个线程的以下代码,但不推荐使用 audioSessionGetProperty 方法。任何人都知道如何更改以下代码以使其工作或拥有自己的代码/解决方案。

Thanks.

- (BOOL)isHeadsetPluggedIn {
    UInt32 routeSize = sizeof (CFStringRef);
    CFStringRef route;


    //Maybe changing it to something like the following would work for iOS7?
    //AVAudioSession* session = [AVAudioSession sharedInstance];
    //OSStatus error = [session setCategory:kAudioSessionProperty_AudioRoute...?


    //the line below is whats giving me the warning
    OSStatus error = AudioSessionGetProperty (kAudioSessionProperty_AudioRoute,
                                              &routeSize,
                                              &route);

    /* Known values of route:
     * "Headset"
     * "Headphone"
     * "Speaker"
     * "SpeakerAndMicrophone"
     * "HeadphonesAndMicrophone"
     * "HeadsetInOut"
     * "ReceiverAndMicrophone"
     * "Lineout"
     */

    if (!error && (route != NULL)) {

        NSString* routeStr = (__bridge NSString*)route;

        NSRange headphoneRange = [routeStr rangeOfString : @"Head"];

        if (headphoneRange.location != NSNotFound) return YES;

    }

    return NO;
}

这应该可行,但我现在无法测试,我会在晚上进行。

- (BOOL)isHeadsetPluggedIn {
    AVAudioSessionRouteDescription* route = [[AVAudioSession sharedInstance] currentRoute];
    for (AVAudioSessionPortDescription* desc in [route outputs]) {
        if ([[desc portType] isEqualToString:AVAudioSessionPortHeadphones])
            return YES;
    }
    return NO;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

耳机是否已插入? IOS 7 的相关文章

  • 将 CSS 框阴影转换为 iOS 阴影

    有谁知道我如何转换box shadowObjective C 中 UIButton 上的阴影 例如这个阴影 box shadow 2px 0 0 0 46d466 2px 0 0 0 46d466 0 2px 4px 0 rgba 0 0
  • 扭曲的导航栏自定义后退按钮

    我有一个自定义后退按钮 该按钮没有按预期显示 它正在被拉伸 即使后退按钮文本为空 它仍然显示 后退 文本 提前致谢 我通常使用这种技术来使其发挥作用 要删除默认标题 UIBarButtonItem appearance setBackBut
  • 开发iPhone游戏需要什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何判断一个具有很多属性的对象(自身)是否发生了改变?

    问题的简短版本 我有一个带有大量声明属性的类 我想跟踪它是否有任何更改 以便当我调用save方法 当不需要时它不会写入数据库 我如何更新isDirty财产无需为所有声明的属性编写自定义设置器 问题的较长版本 假设我有一堂这样的课 inter
  • 无法实例化名为 GLKView 的类

    我得到了这个异常 2014 02 19 19 08 34 590 MyApp 42353 70b Terminating app due to uncaught exception NSInvalidUnarchiveOperationEx
  • Swift 4.2 当键盘显示时使 tableView 的底部向上移动

    尽管我已经进行了搜索 但我对如何最好地解决这个问题感到困惑 我有一个 tableView 其中底部单元格是列表的输入 就像苹果提醒的工作方式一样 当列表中的项目太多时 键盘会覆盖列表 我看不到正在输入的内容 我认为我需要更改表视图的物理大小
  • UITableView 顶部出现间隙[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我不确定现在问这个问题是否合适 我正在表视图上使用 Xcode 5 预览版 现在的问题是我的表格视图是否被选择为group比我在第一个单元
  • 如何使用 Parse 和 Swift 从 Facebook 注销或撤销登录

    我正在尝试将我的用户完全从我的应用程序中注销 使用时 PFUser logout 我成功地将用户从 Parse 中注销 但是 当我返回应用程序并单击登录按钮时 我被重定向到 Facebook 屏幕 显示 您已经授权 应用程序名称 所以我永远
  • AVSpeechUtterance 最大音量非常安静且速率非常快

    我正在考虑向我的应用程序添加语音提示 并在 iOS 7 中测试 AVSpeechUtterance 但默认语音速率非常快 最低语速更容易理解 但是最大音量值1太安静了 我在 iPhone 4 上进行了测试 并将音量调到最大 一定是出了什么问
  • 位置:固定在 iPad 和 iPhone 上不起作用

    I have been struggling with fixed positioning in iPad for a while I know iScroll http cubiq org iscroll and it does not
  • 支持从右到左的纯布局

    iOS纯布局支持从右到左的语言吗 我们如何在阿拉伯语言的代码中实现它 而不需要去设置并选择区域和格式语言 Thanks 您可以通过在 Xcode gt 编辑方案 gt 运行 gt 选项 选项卡 gt 应用程序语言 gt 从右到左伪语言中选择
  • 使用cordova打开本地pdf文件

    我使用 cordova 3 3 0 我想打开本地 pdf 文件 然后根据用户需求关闭它 ref window open encodeURI path blank location yes ref addEventListener exit
  • 我可以通过编程方式获取连接到手机的 wifi 的 MAC 地址吗?

    我的手机已连接到 wifi 我想获取我的 wifi 的 MAC 地址 BSSID 和 mac 地址是同一回事 您可以通过此函数获取 mac 地址 只需导入 SystemConfiguration CaptiveNetwork func ge
  • 如何在 iOS8 上以编程方式创建一个没有 Storyboard 的 Today 小部件?

    我尝试删除故事板文件和相关的Info plist进入但这次扩展停止工作 它甚至不能从 XCode 启动 The operation couldn t be completed LaunchServicesError error 0 在常规应
  • 具有多个嵌入 Segue 的 ContainerView

    有没有办法让单个 ContainerView 具有多个嵌入序列 目的是让 ContainerView 根据按下的按钮来容纳一些不同的 ViewController 一次只能看到一个 我想使用嵌入序列 以便在 Interface Builde
  • 我可以在 iOS 中测量蓝牙信号强度吗?

    Can I 测量信号强度我的 iPhone 范围内的蓝牙设备数量 基本上我想要做的是扫描范围内的设备列表 然后查看哪个设备的信号强度最高 在 iOS 中是否可行 如果可以 我该怎么做 是的 有一种方法可以测量蓝牙低功耗 4 0 的信号强度
  • 电子邮件在 ShareKit 中不起作用并且没有错误

    我正在使用 ShareKit 将 Facebook Twitter 和电子邮件共享添加到我的 iPhone 应用程序中 现在 Facebook 和 Twitter 可以使用 但电子邮件无法使用 最大的问题是没有错误或任何错误 它正常工作 但
  • 如何在iPhone上绘制“对话气泡”?

    当您右键单击扩展坞中的某个内容时 我试图获得类似于 Mac OS X 中的 语音气泡 效果 这是我现在所拥有的 我需要得到下部的 三角形 部分 有什么办法可以画出这样的东西并在它周围加上边框吗 这将是为了iPhone app 提前致谢 ED
  • UIViewController 加载时间慢(ClientState 慢警告)

    自从我将旧应用程序转换为 iOS 6 以来 我开始在控制台中收到以下消息 WARNING Slow defaults access for key ClientState took 0 023656 seconds tolerance is
  • Windows 下 iOS 开发的替代方案 [重复]

    这个问题在这里已经有答案了 可能的重复 如何使用 Windows 开发机为 iPhone 进行开发 https stackoverflow com questions 22358 how can i develop for iphone u

随机推荐

  • C# 将 int 转换为字符串并填充零?

    在 C 中 我有一个整数值需要转换为字符串 但需要在之前添加零 例如 int i 1 当我将它转换为字符串时 它需要变成 0001 我需要了解 C 中的语法 i ToString PadLeft 4 0 好的 但不适用于负数 i ToStr
  • 如何更改 UISearchBar 字体大小和颜色?

    我已经用谷歌搜索了几个小时如何更改我的 UISearchBar 字体大小和颜色 但我无法找到任何与之相关的文档 这是我到目前为止在 swift 4 上所做的 searchBar UISearchBar frame CGRect x 0 y
  • 为什么可以在同一个类中创建的另一个线程中访问局部变量?

    我真的找不到关于这个确切主题的任何内容 所以如果问题已经存在 请引导我走向正确的方向 根据我对 NET 的了解 不可能跨不同线程访问变量 如果该语句错误 请纠正我 这只是我在某处读到的内容 然而 现在在这个代码示例中 它似乎不应该工作 cl
  • 将背景颜色设置为 HighChart xAxis 标签

    如何为 HighChart xAxis 标签设置背景颜色 我尝试了以下但没有运气 x轴 类别 一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月 标签 旋转 90 风格 颜色 89A54E 填写 000 背景颜色 F
  • 导航到“url”,等待“load” - Python Playwright Issue

    嘿 我在 python playwright 中有用于获取页面源代码的代码 import json import sys import bs4 import urllib parse from bs4 import BeautifulSou
  • 悬停后保持下拉菜单打开(CSS)

    我创建了一个水平菜单 当您将鼠标悬停在某个项目上时 会出现一个下拉菜单 这一切都很好 但是 当您离开菜单项 使用下拉菜单 时 下拉菜单就会消失 我知道这是因为你不再悬停它 但我该如何解决这个问题 注意 我不希望下拉菜单直接位于其下方 我希望
  • 无法在 Angularjs 中使用 templateUrl 加载模板

    我刚刚学习 Angularjs 以及如何使用 templateUrl 加载模板 我有一个简单的指令 var mainApp angular module mainApp mainApp directive request function
  • 如何将文本区域的标签对齐到顶部?

    我确实有一个表格数据 如下所示 td td
  • 空字符串而不是不匹配的组错误

    我有这段代码 for n in range 1 10 new re sub r regex group regex regex r something str n r 1 old count 1 它会抛出不匹配的组错误 但如果它不匹配 我想
  • 启用 Vuforia 时 Unity 崩溃

    在 XR 设置中启用 Vuforia 增强现实支持 时 我的编辑器崩溃 以下是我遵循的步骤 重现步骤 1 创建一个新项目 2 文件 gt 构建设置 gt 播放器设置 gt 播放器 3 从 XR 设置中启用 Vuforia 增强现实 复选框
  • 使用 matplotlib 从图中获取数据

    我在 python 中使用 matplotlib 来构建散点图 假设我有以下 2 个数据列表 X 1 2 3 4 5 Y 6 7 8 9 10 然后我使用X作为X轴值 Y作为Y轴值来绘制散点图 所以我会有一张上面有 5 个散射点的图片 对吧
  • STM32 Nucleo 上的上升沿中断多次触发

    我正在使用 STM32 NUCLEO F401RE 微控制器板 我有一个扬声器 经过编程 当向上 向下推操纵杆时 可以按设定的量改变频率 我的问题是 有时 通常 当向上 向下推动操纵杆时 频率会增加 减少多次 这意味着 ISR 正在执行多次
  • 通过网络桥接串行端口

    对于使用串行端口进行通信 确切地说是 Modbus RTU 的应用程序 我需要通过网络桥接串行端口以进行测试 所以我想要以下设置 Device Network PC SerialPort SerialPort Map Serialport
  • 如何将节点标题放置在 d3 Sankey 图中节点的左侧或右侧?

    这是我指的例子 http bl ocks org d3noob c9b90689c1438f57d649 http bl ocks org d3noob c9b90689c1438f57d649 第二级节点的标题位于其右侧 如何将它们放置在
  • 函数导入(存储过程)需要 SaveChanges() 吗?

    Is 保存更改 函数导入 存储过程 有必要吗 Example void foo Product product AddProduct is a function import of a stored procedure entities A
  • WebAPI 中的 DTO 和投影

    WebAPI支持OData 因此API使用者可以指定他需要的字段 而且效果很好 但是有没有办法在 WebAPI 中使用 DTO 对象和投影呢 例如我有 public class WebSite public string Url get s
  • iOS 中的 Google Analytics SDK 3.0 _sqlite3 链接器错误

    我正在整合谷歌分析 SDK 3 0在我的项目中 但我越来越链接器错误当尝试构建我的项目时 正如在文档 https developers google com analytics devguides collection ios v3 hea
  • 如何按键对字典进行排序,其中值是 Swift 4 中的对象数组?

    我有字典 其中包含String键和数组Objects作为价值 使用以下方法将这些值从已排序的对象数组添加到字典中append方法 根据对象属性的首字母将值分类为键 但返回未排序的字典 字典声明为 var namesDic String Na
  • Java 泛型问题:类“不在类型变量的范围内”错误。

    我正在开发一个涉及泛型的类项目 public interface Keyable
  • 耳机是否已插入? IOS 7

    为 iPhone 开发一个应用程序 其中包含也需要通过耳机收听的音频文件 如何检查耳机是否未插入 以便我可以告诉用户插入耳机 我有来自另一个线程的以下代码 但不推荐使用 audioSessionGetProperty 方法 任何人都知道如何