作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试找到一种方法来检测 Xamarin.iOS 中耳机插孔上的插入/拔出事件,特别是在最新版本 (iOS 7) 上。我找到了为早期版本提供解决方案的帖子,但这似乎不适用于 iOS 7。在这个版本中有没有办法做到这一点?如果是,我该如何实现该功能?
最佳答案
像这样:
using System.Runtime.InteropServices;
using MonoTouch.AudioToolbox;
...
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
AudioSession.AddListener(AudioSessionProperty.AudioRouteChange, EventHandler);
}
void EventHandler(AudioSessionProperty prop, int size, IntPtr data)
{
var isHeadphonesAvailable = IsHeadphonesAvailable (prop, size, data);
if (isHeadphonesAvailable) {
// Do something
} else {
// Do something else
}
}
bool IsHeadphonesAvailable(AudioSessionProperty prop, int size, IntPtr data)
{
var result = false;
if (prop == AudioSessionProperty.AudioRouteChange) {
var text = Marshal.PtrToStringAuto (data, size);
result = (text.Contains ("Head"));
}
return result;
}
没有在真实设备上尝试过。只需转换其中一个 Objective-C
片段。
关于ios - 在 Xamarin.iOS (iOS 7) 中检测耳机插孔的插入和拔出事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19713794/
我想将 iOS VoiceOver 声音定向到耳机,即使它没有插入。 换句话说,当我的应用程序打开时,VoiceOver 声音(以及我在应用程序中使用 AVSpeechUtterance 等播放的其他
我是一名优秀的程序员,十分优秀!