您可以通过哪些方式订阅MPMoviePlayerController的通知?

时间:2013-07-14 14:19:38

标签: ios xamarin.ios xamarin

请考虑以下代码。它按预期工作 - 正在发送MPMoviePlayerDidExitFullscreenNotification通知并调用ClosePlayer方法。

using System;
using System.Drawing;
using MonoTouch.Foundation;
using MonoTouch.MediaPlayer;
using MonoTouch.UIKit;

public partial class PlayerViewController : MPMoviePlayerController
{
    public PlayerViewController() : base()
    {
        NSNotificationCenter.DefaultCenter.AddObserver("MPMoviePlayerDidExitFullscreenNotification", this.ClosePlayer);
    }

    private void ClosePlayer(NSNotification notification)
    {
        // Do something..
    }
}

然而,这个设计让我很奇怪,而且我想知道我们是否可以做更简单的事情,如下所示:

this.MPMoviePlayerDidExitFullscreenNotification += this.ClosePlayer;

为了听取类本身触发的事件,必须通过NSNotificationCenter似乎真的不自然。或者我错过了什么?

此外 - 是否可以以硬编码字符串以外的任何方式指定通知类型(例如 - MPMoviePlayerDidExitFullscreenNotification)?

提前谢谢你:)

免责声明:我是MonoTouch中的一个总菜鸟,并且有一些.NET背景,有些东西感觉很奇怪。

1 个答案:

答案 0 :(得分:2)

我偶然发现MPMoviePlayerController上有一个可以使用的静态属性:

MPMoviePlayerController.Notifications.ObserveDidExitFullscreen(this.ClosePlayer);