I love iPhone, Android, Cocos2d-x
[iPad] 外部ディスプレイに出力する
iPad では VGA アダプタを接続して外部のディスプレイやプロジェクタに出力することができます。ミラーリングなどの機能はなく、自分で UIWindow を作成して出力する UIView を指定して出力します。
流れとしては、
・外部ディスプレイの出力サイズを取得する
・UIWindow を作成する
・その UIWindow に 出力する UIView を設定する
・UIWindow を外部出力に指定する
また、Notification を設定しておくことにより外部ディスプレイが接続されたり、接続が解除されたりしたときには通知を受けることが可能です。
外部出力する処理
UIScreen の screens で外部ディスプレイがあるかチェックし、あれば最大の出力サイズを取得し UIView をそのサイズで作成して設定します。
NSArray *screens = [UIScreen screens]; if(screens.count>1) { UIScreen* screen = [screens objectAtIndex:1]; UIScreenMode *maxScreenMode; CGSize maxSize; for( UIScreenMode *current in screen.availableModes ) { if(current.size.width > maxSize.width) { maxSize = current.size; maxScreenMode = current; } } screen.currentMode = maxScreenMode; window = [[UIWindow alloc]init]; window.screen = screen; view = [[UIView alloc] initWithFrame:maxSize]; [window addSubview:view]; [window makeKeyAndVisible]; } else { // 外部ディスプレイが見つからない }
Notification の設定
外部ディスプレイが接続された時、切断された時、出力モードが変更された時の設定です。
// 接続された時 [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(screenDidConnectNotification:) name: UIScreenDidConnectNotification object: nil]; // 切断された時 [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(screenDidDisconnectNotification:) name: UIScreenDidDisconnectNotification object: nil]; // 出力モードが変更された時 [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(screenModeDidChangeNotification:) name: UIScreenModeDidChangeNotification object: nil];
関連する投稿
3 comments
コメントをどうぞ
Additional comments powered by BackType
外部ディスプレイ出力コントロールためになります。ちなみに、iOSサファリブラウザで、YouTubeのような動画は、デフォルト外部出力してしまうのですが、javascriptで接続検知して、外部出力する、しないをやりたいのですが、無理なのでしょうか。
Buy Fast Private Proxy…
iPad ã?§ã?¯ VGA…
1footnote…
…