检测耳机未插电 - Monotouch

时间:2011-12-11 20:02:34

标签: iphone ios binding xamarin.ios audiotoolbox

有没有办法检测Monotouch中的耳机是否已拔下?我正在尝试寻找AudioSessionAddPropertyListener方法但却看不到它。这种方法移植了什么?

以下是Apple的文档:http://developer.apple.com/library/ios/#documentation/AudioToolbox/Reference/AudioSessionServicesReference/Reference/reference.html#//apple_ref/doc/constant_group/Audio_Session_Interruption_States

如果有人想查看如何执行此操作的代码,您可以执行以下操作:

AudioSession.PropertyListener p = delegate(AudioSessionProperty prop, int size, IntPtr data) {

            NSDictionary propertyDictionary = new NSDictionary(data);

            if (propertyDictionary.ContainsKey(NSObject.FromObject("OutputDeviceDidChange_OldRoute")))
            {
                string oldRoute = propertyDictionary.ValueForKey(new NSString("OutputDeviceDidChange_OldRoute")).ToString();

                if (oldRoute == "Headphone")
                {
                    if (audioPlayer != null)
                    {
                        audioPlayer.Pause();    
                    }
                }
            }
        };

        AudioSession.AddListener(AudioSessionProperty.AudioRouteChange, p);

1 个答案:

答案 0 :(得分:1)

  

有没有办法检测Monotouch中的耳机是否已拔下?

我不确定但是......

  

我正在尝试查找AudioSessionAddPropertyListener方法,但看不到它。这种方法移植了什么?

AudioSessionAddPropertyListener的本机调用会映射到MonoTouch的AudioSession.AddListener静态方法。