я пишу Perl-скрипт, и в той части, где я проверяю опции, предоставленные пользователем в командной строке, я хочу выйти с ошибкой, объясняющей, что не так с опциями. В этом случае нет необходимости для трассировки стека, чтобы сопровождать это сообщение об ошибке. Так как же лучше всего умереть с сообщением об ошибке, но без трассировки стека или отладочной информации?
Я пробовал следующее: Пользователь дважды щелкает кнопку «Домой» и переходит к первому экрану с воспроизведением ...
Я хочу реализовать следующие вещи:
MPMoviePlayerController
) в фоновом режиме. . Для третьего шага я должен знать, какая кнопка нажата.
(Насколько я знаю, воспроизводимый в данный момент элемент приостановлен, остановлен .. используя уведомление MPMoviePlayerPlaybackStateDidChangeNotification
).
Какое уведомление я должен зарегистрировать? Или есть другие подходы?
Ответ получил сам.
Это использование beginReceiveRemoteControlEvents UIApplication.
В соответствующем месте (например, viewWillAppear:) поместите следующий код
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
И контроллер представления должен реализовать следующий метод, возвращающий YES
- (BOOL)canBecomeFirstResponder {
return YES;
}
И тогда вы можете получить событие удаленного контроллера в следующем методе.
- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
if( event.type == UIEventTypeRemoteControl ) {
NSLog(@"sub type: %d", event.subtype);
}
}
И event.subtype, как показано ниже,
typedef enum {
// available in iPhone OS 3.0
UIEventSubtypeNone = 0,
// for UIEventTypeMotion, available in iPhone OS 3.0
UIEventSubtypeMotionShake = 1,
// for UIEventTypeRemoteControl, available in iPhone OS 4.0
UIEventSubtypeRemoteControlPlay = 100,
UIEventSubtypeRemoteControlPause = 101,
UIEventSubtypeRemoteControlStop = 102,
UIEventSubtypeRemoteControlTogglePlayPause = 103,
UIEventSubtypeRemoteControlNextTrack = 104,
UIEventSubtypeRemoteControlPreviousTrack = 105,
UIEventSubtypeRemoteControlBeginSeekingBackward = 106,
UIEventSubtypeRemoteControlEndSeekingBackward = 107,
UIEventSubtypeRemoteControlBeginSeekingForward = 108,
UIEventSubtypeRemoteControlEndSeekingForward = 109,
} UIEventSubtype;