NicoLiveAlert 0.8以降は、ニコニコ生放送の関連アプリケーションと連携して動くために、
通知センター経由で情報を通知する様になりました。
本ドキュメントでNicoLiveAlertからどうやって通知を受け取り、受け取った通知がどの様に使えるかの説明をしていきます。
本ドキュメントの末尾に、通知を受け取るための定義ファイルが添付されていますので、
#import "NicoLiveAlertCollaboration.h"
として、ヘッダーファイルを読み込んでください。
NicoLiveAlertからの通知はNSDistributedNotificationCenterを使って通知されます。
なので、アプリケーションの起動時(例えば、applicationWillFinishLaunching:やapplicationDidFinishLaunching:)に
// プログラム開始通知を捕捉するメソッドを登録する [[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(catchProgramStart:) name:NLABroadcastStartNotification object:NLAApplicationName]; // プログラム終了通知を捕捉するメソッドを登録する [[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(catchProgramEnd:) name:NLABroadcastEndNotification object:NLAApplicationName];
等として、プログラム開始・終了通知を受け取る様にします。プログラム終了の通知を受け取らなくて良い場合は、NLABroadcastEndNotificationを登録しなくても構いません。
上のサンプルコード中のcatchProgramStart:やcatchProgramEnd:のプロトタイプは、
- (void) メソッド名:( NSNotification)*note;
の様になります。
同様に、アプリケーション終了時には、通知センターから登録を削除しなければいけません。なので、アプリケーションの終了時(例えば、applicationShouldTerminate:やapplicationWillTerminate:)に
// プログラム開始通知を解除する [[NSDistributedNotificationCenter defaultCenter] removeObserver:self name:NLABroadcastStartNotification object:NLAApplicationName]; // プログラム終了通知を解除する [[NSDistributedNotificationCenter defaultCenter] removeObserver:self name:NLABroadcastStartNotification object:NLAApplicationName];
の様に、通知センターから登録を解除します。これはもちろん、最初に登録したnameに関してのみ行ってください。
通知は、先のプロトタイプのNSNotificationクラスのインスタンスとして渡されます。
通知される情報は、
NSDictionary *info = [note userInfo];
の様にして、NSDictionaryクラスのオブジェクトとして取得します。
各情報は、valueForKey:メソッドにより取り出します。
各Keyとそれにより、取得される値のクラスと意味は以下の通りです。
Key | Class | 内容 |
ProgramURL | NSString | 番組のURL文字列 |
LiveNumber | NSString | lv.....だけの文字列、URLそのものは必要無い場合はこちらの方が使い勝手が良いと思います。 |
CommentViewer | NSNumber |
numberWithBoolで、BOOLを取得してください。 環境設定でコメントビュワーで開く条件を満たしていると、YES,そうで無い場合はNOが入っています。 |
BroadcastStreamer | NSNumber |
numberWithBoolで、BOOLを取得してください。 自分の放送時に外部配信ツールを起動する必要があると、YES,そうで無い場合はNOが入っています。 |
BroadCastKind | NSNumber |
numberWithBoolで、NSIntegerを取得してください。値は、
|
ヘッダーファイルはNicoLiveAlertCollaboration.hにあります。
これでほぼ、Fix.だと思いますが、追加リクエストなどで改変されることがあるかも知れないので、その際は、RSSまたは掲示板で確認をお願いします
以上で、NicoLiveAlertが捕捉したプログラムの開始をアプリケーションが連動して動けるようになると思います。
不足している情報、追加して欲しい情報などがありましたら、サイトトップのメールアドレス、またはコミュニティの掲示板にてリクエストをお願いします。
最後までお付き合いくださり、ありがとうございました。