问题标签 [headphones]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
23621 浏览

android - 检查耳机是否插入

如果耳机已插入,我似乎无法在android上找到一种方法。我找到了各种解决方案,但它们似乎总是返回错误。唯一似乎可以正常工作的是 a BroadcastReceiver,但这不是我需要的:

我只需要这样的东西

有这样的功能吗?它需要一些特殊的权限吗?

0 投票
1 回答
3511 浏览

ios - 插入或拔出耳机时 iOS 应用程序崩溃

我在 iOS 6.1.3 iPad2 和新 iPad 上运行 SIP 音频流应用程序。

我在我的 iPad 上启动我的应用程序(没有插入任何东西)。
音频作品。
我插上耳机。
应用程序崩溃:malloc:对象 0x 的错误 ....:未分配被释放的指针或 EXC_BAD_ACCESS

或者:

我在 iPad 上启动我的应用程序(插入耳机)。
音频从耳机中传出。
我拔下耳机。
应用程序崩溃:malloc:对象 0x 的错误 ....:未分配被释放的指针或 EXC_BAD_ACCESS

应用程序代码使用基于http://code.google.com/p/ios-coreaudio-example/示例代码的 AudioUnit api(见下文)。

我使用 kAudioSessionProperty_AudioRouteChange 回调来获得更改意识。因此操作系统声音管理器有三个回调:
1)处理录制的麦克风样本
2)为扬声器提供样本
3)通知音频硬件存在

经过大量测试后,我的感觉是棘手的代码是执行麦克风捕获的代码。在插入/拔出操作之后,大多数情况下,记录回调在调用 RouteChange 之前被调用几次,导致后来的“分段错误”,并且永远不会调用 RouteChange 回调。更具体地说,我认为 AudioUnitRender 函数会导致“内存错误访问”,而根本不会抛出异常。

我的感觉是,非原子记录回调代码与操作系统更新与声音设备相关的结构竞争。因此,录制回调的非原子性更可能是操作系统硬件更新和录制回调的并发。

我修改了我的代码以使记录回调尽可能薄,但我的感觉是我的应用程序的其他线程带来的高处理负载正在满足前面描述的并发竞争。因此,由于 AudioUnitRender 访问错误,代码的其他部分会出现 malloc/free 错误。

我试图通过以下方式减少录制回调延迟:

我试图提升有问题的代码:

有人对此有提示或解决方案吗?为了重现错误,这里是我的音频会话代码:

0 投票
3 回答
1181 浏览

c# - 如何在 WinRT 中检测未插入的耳机插孔?

有没有办法在 WinRT 应用程序中拔下耳机插孔时收到通知?我希望能够在发生 MediaElement 播放时暂停播放,以防止声音通过扬声器泄漏。

0 投票
1 回答
1314 浏览

iphone - 当我的应用程序处于后台模式时,检测从 iPhone 插入或拔出耳机插孔

iPhone/iPod/iPad当我的应用程序处于该background模式时,我想在我的耳机插孔插入或拔出时通知用户。在这里,我有在foreground模式中检测到的代码。

0 投票
1 回答
982 浏览

android - 拦截长按媒体按钮并禁用 Google Now

我希望启动一个接收器\服务,它接收来自耳机按钮的长按并禁用 Google Now 语音识别功能。这是否可能,或者 Google Now 响应是否被硬编码为在 Jelly Bean 之前具有更高的优先级?

谢谢!

0 投票
1 回答
921 浏览

android - 同时收到 MEDIA_BUTTON 按钮事件 ACTION_DOWN 和 ACTION_UP

在我的应用程序中,我想测量媒体按钮按下的时间。我注册了一个监听媒体按钮按下的广播接收器:(请原谅愚蠢的错误,因为我是初学者......)

broadcastReceiver 激活活动中的方法(不理想,但这仅用于测试目的):

该活动在调用 startTimer() 时占用系统时间,然后在调用 stopTimer 时再次占用系统时间并显示差异:

问题是,从我看到的两个事件同时调用,当我放开按钮时,最终使计时器计数的时间非常短(几毫秒),与我按下的持续时间无关按钮。

我究竟做错了什么?

0 投票
1 回答
43579 浏览

android - 通过耳机插孔将音频输入到安卓智能手机?

我正在尝试通过外部播放器的耳机插孔将音频传递到安卓手机。我有理由确定可以这样做有两个原因:

1)方形读卡器的工作原理是通过耳机插孔发送信息,因此可以处理信息输入。https://squareup.com/reader
2)为了将音频从播放器传输到手机,我将使用普通的辅助电缆,类似于将音乐播放器连接到扬声器的电缆。事实上,音频可以通过简单的两环电缆传递到扬声器。我知道通常这两个环仅用于输出,第三个环用于输入,但在我看来,这表明它们能够在没有第三个环的情况下输入。

我的问题是似乎没有任何 api 可以通过耳机插孔处理输入,而且似乎没有人知道方形阅读器是如何工作的,或者处理输入。看起来 AudioRecord,http://developer.android.com/reference/android/media/AudioRecord.html,可能有一些工作潜力,但似乎需要提前指定大小,这并不理想.

因此,如果有人可以帮助我提供有关 AudioRecord 及其工作原理的任何信息,或者处理输入的另一种方式,我将不胜感激。此外,如果有人确定我认为两环电缆可以处理输入是否正确,那也会有很大帮助。谢谢。

0 投票
2 回答
1868 浏览

iphone - 应用启动时检查耳机是否插入

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

0 投票
2 回答
1605 浏览

ios - 在 Xamarin.iOS (iOS 7) 中检测耳机插孔上的插入和拔出事件

我正在尝试找到一种方法来检测 Xamarin.iOS 中耳机插孔上的插入/拔出事件,特别是在最新版本(iOS 7)上。我找到了为早期版本提供解决方案的帖子,但这似乎不适用于 iOS 7。有没有办法在这个版本中做到这一点?如果是,我该如何实现该功能?

0 投票
1 回答
4505 浏览

windows-8 - 配对后蓝牙音频设备不在播放设备下

我有 Sennheiser PXC 360 BT 耳机和一台装有 Windows 8 的新笔记本电脑。

在我以前的笔记本电脑上,我只是将耳机与 Windows 配对,它总是显示在我的音频播放设备下,无论它是否连接。要连接它,您只需右键单击并点击连接。这非常有效(实际上是我真正喜欢的 Windows 8 中唯一的新功能)。

在我的新笔记本电脑上,我经历了同样的过程,将耳机与 Windows 配对,它立即连接并播放,没有任何问题。耳机列在播放设备下,并立即设置为默认播放设备。

问题在重新启动后开始。耳机已从播放设备列表中消失。

  • 我检查了是否正在显示所有设备,它们是(显示禁用和断开连接的设备被勾选)。
  • 我检查了耳机是否仍然配对,是的(在 Metro PC 设置 -> PC 和设备 -> 蓝牙下),但我什么也做不了,只能将其删除。
  • 我尝试在上述设置中移除耳机并重新配对。这使它起作用,但直到下一次重新启动时它们再次消失...

我尝试进行一些谷歌搜索,但不断发现与特定设备无关的蓝牙问题,我怀疑这是(因为它在另一台笔记本电脑上工作)

我能想象的唯一区别是我笔记本电脑中的无线/蓝牙设备。这是一个 Bigfoot Killer Wireless-N 1202。如果我在蓝牙下检查我的设备管理器,我发现它包含一个 Qualcomm Atheros AR3012 蓝牙 4.0 + HS。

提前感谢您的时间。