У меня есть небольшое приложение, которое работает на iOS и tvOS, где я показываю видео в UIView.Он поддерживает iOS 12 и tvOS 12. Теперь хочу показать PIP для tvOS, поэтому попытка использовать AVPictureInPictureController выдает ошибку «Использование необъявленного идентификатора» AVPictureInPictureController ».
Хотя цель развертывания установлена на tvOS 13. В Xcode возможности -> Фоновый режим -> включены «Аудио, трансляция и картинка в картинке». Этот основной код дает ошибку.
#import <AVKit/AVKit.h>
if ([AVPictureInPictureController isPictureInPictureSupported]) {
// code
}
Какие-то другие настройки отсутствуют или что-то еще мне нужно сделать?
Спасибо
ВОЗМОЖНОСТЬ ВОПРОСОВ В ОТНОШЕНИИ ПРОБЕЛОВ В РЕАЛИЗАЦИИ:
Поэкспериментируйте с AVPlayerViewController: сначала убедитесь, что мы установили категорию воспроизведения аудио, как правило, когда мы используем AVPlayerViewController для воспроизведения видеоконтента. Режим PIP будет автоматически вызываться, если разработанное приложение войдет в фоновый режим, но только если оно удовлетворяет указанному ниже условию. Во-первых, проигрыватель, который мы используем, должен находиться в полноэкранном режиме, во-вторых, мы должны убедиться, что видео должно быть Воспроизведение в нем, и третье - это PIP. Должно поддерживаться устройством и, наконец, метод записи делегата, чтобы восстановить пользовательский интерфейс проигрывателя, когда пользователь возвращается из режима «картинка в картинке».
Внедрение с _AVPictureInPictureController: рабочий пример можно найти в приведенной ниже теме. Как отобразить AVPictureInPictureController?
Развертывание проблемы. Чтобы подтвердить, что необъявленная ошибка возникла не из-за пробелов в реализации, а из-за environmentmnet в Xcode, загрузите исходный код, а затем добавьте папку Sources в другую папку в вашем рабочем пространстве. Добавьте папку с помощью " Добавить файлы в ... "вариант и теперь проверьте внутри xcode.
ВОЗМОЖНОСТЬ ВЫПУСКА, СВЯЗАННОГО С ОБНОВЛЕНИЕМ В XCODE Попытка Fix By Approach 1 Включите класс явно в заголовок и / или тело - вместо файла * .pch. Тогда эта ошибка может исчезнуть. Также иногда удаляются производные данные. Изменили ли вы местоположение в настройках в последнее время случайно? Некоторые получают эту ошибку, когда они используют виртуальный диск для производных данных, а затем возвращаются к значениям по умолчанию. Это самый раздражающий случай - поскольку он приводит к появлению этой ошибки почти во всех файлах.
Попробуйте Fix By Approach 2 Иногда простое решение может помочь удалить одну из строк #import из файла pch и перекомпилировать, что приведет к сбою, как и ожидалось. Затем верните удаленную строку обратно, перекомпилируйте и скомпилируйте ее нормально, с устранением всех ложных ошибок.
ВОЗМОЖНОСТЬ ВЫПУСКА В ТЕЧЕНИЕ ОШИБКИ XCODE, СЛЕДУЙТЕ НИЖЕ ШАГАМ Очистите сборку : Command-Option-Shift-K, чтобы очистить папку сборки. Сброс симулятора: выберите iOS Simulator> Сбросить содержимое и настройки. Перезапустите XCode. Удалите папку DerivedData в ~ / Library / Developer / Xcode / DerivedData Перезагрузите компьютер.
Удалите папки / var / очень целенаправленно. rm -rf "$ (getconf DARWIN_USER_CACHE_DIR) /org.llvm.clang/ModuleCache"
Источник: Как очистить кэши и Clean All Targets Xcode 4 , а затем Xcode «Использование необъявленной идентификатора» ошибок, компилирует / работает просто отлично Использование необъявленной идентификатора в Xcode 9.0 https://developer.apple.com/documentation/avkit/adopting_picture_in_picture_in_a_standard_player
источник
Создать простой видеоплеер
Во-первых, вам нужно реализовать базовый видеоплеер в файле ViewController.m вашего проекта, например:
Для дальнейшей помощи пройдите
https://help.apple.com/xcode/mac/8.0/#/dev51a648b07
источник