Поиск родительского AVPlayer для AVPlayerItem

У меня есть 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 никогда не вызывался.


person Albert Renshaw    schedule 05.02.2017    source источник
comment
См. stackoverflow.com/a/7244069/1226963 способ рекурсивного просмотра всех подпредставлений.   -  person rmaddy    schedule 05.02.2017
comment
@rmaddy У меня есть подозрение, что AVPlayer не является подвидом, я могу ошибаться, я вручную углубился на 10 уровней в массив подвида и не увидел ни одного объекта AVPlayer.   -  person Albert Renshaw    schedule 05.02.2017
comment
AVPlayer не является представлением. Зарегистрируйте все имена классов подпредставления, и вы можете найти какой-то внутренний класс, представляющий представление игрока.   -  person rmaddy    schedule 05.02.2017