Код: Выделить всё
// Inside root view controller
- (void) play_test_video {
g_video_test = [AVPlayer playerWithURL : file_url];
g_video_controller = [[AVPlayerViewController alloc] init];
g_video_controller.player = g_video_test;
g_video_controller.delegate = self;
[g_video_controller addObserver : self
forKeyPath : @"playbackControlsVisiblility"
options : (NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld)
context : nil];
NSLog(@"... ... * observer * added");
[g_video_test play];
}
- (void) observeValueForKeyPath : (NSString *) key_path
ofObject : (id) object
change : (NSDictionary *) change
context : (void *) context {
NSLog(@"*** *** inside observeValueForKeyPath ... ");
if ([key_path isEqualToString: @"playbackControlsVisibility"]) {
NSLog(@"*** *** video controls appear or disappear");
}
}
- (void) remove_video_window {
// g_video_controller = NULL;
// g_video_test = NULL;
[g_video_controller
removeObserver : self
forKeyPath : @"playbackControlsVisiblility"
];
g_video_controller = NULL;
g_video_test = NULL;
}
< /code>
Видео работает OK, без ошибок. Но vemverevalueforkeypath ()
Код: Выделить всё
observeValueForKeyPath()
NSLog(@"*** *** inside observeValueForKeyPath ... ");
< /code>
не имеет никакого эффекта. < /p>
Если у вас есть какие -либо предложения, пожалуйста, помогите. < /p>
xcode 15.2. Вышевой код, протестированный на iPhone Pro Max, под управлением iOS 16.2.
Подробнее здесь: https://stackoverflow.com/questions/796 ... uns-withou