У меня есть AVPlayerItem
, который я смог получить из своего UIWebView (посещение веб-сайта с AVPlayer/видеофайлом в HTML), используя некоторые обратные вызовы AVPlayer в моем ViewController.
Мне нужно получить доступ к AVPlayer, у которого этот элемент установлен как его AVPlayerItem.
На данный момент я делаю это, вызывая [TheAVPlayerItem valueForKey:@"player"];
, но это недокументировано и не гарантируется, что оно будет работать в будущем.
Я ищу более авторитетный способ добиться этого. Я даже был бы счастлив буквально начать с UIWebView и пройтись по всем подпредставлениям (или подобъектам?) и захватить любой AVPlayer, а затем проверить, установлен ли его AVPlayerItem на мой AVPlayerItem... увы, я не знаю как это сделать. Но я включил свою попытку сделать это:
//[TheAVPlayerItem valueForKey:@"player"];//undocumented and prone to breaking.
for (NSObject *anObject in [myWebView subviews]) {
if ([anObject isKindOfClass:[AVPlayer class]]) {
NSLog(@"Found an AVPlayer, now check if AVPlayerItem is a match");//never called
} else {
}
}
Конечно, NSLog никогда не вызывался.
AVPlayer
не является представлением. Зарегистрируйте все имена классов подпредставления, и вы можете найти какой-то внутренний класс, представляющий представление игрока. - person rmaddy   schedule 05.02.2017