Mam małą aplikację, która działa na iOS i tvOS, gdzie wyświetlam wideo w UIView. Obsługuje iOS 12 i tvOS 12. Teraz chcę pokazać PIP dla tvOS, dlatego próba użycia AVPictureInPictureController powoduje błąd „Korzystanie z niezadeklarowanego identyfikatora” AVPictureInPictureController ”.
Mimo że cel wdrożenia ustawiony jest na tvOS 13. W Xcode możliwości -> Tryb tła -> włączone „Audio, Airplay i Picture In Picture”. Ten podstawowy kod podaje błąd.
#import <AVKit/AVKit.h>
if ([AVPictureInPictureController isPictureInPictureSupported]) {
// code
}
Brakuje innych ustawień lub muszę zrobić coś jeszcze?
Dzięki
MOŻLIWOŚĆ PROBLEMÓW ZWIĄZANYCH Z GAPS W REALIZACJI:
Eksperymentuj z AVPlayerViewController: początkowo upewnij się, że ustawiliśmy kategorię Audio odtwarzania, zazwyczaj gdy używamy AVPlayerViewController do odtwarzania treści wideo. Tryb PIP zostanie automatycznie wywołany, jeśli opracowana aplikacja przejdzie w tło, ale tylko wtedy, gdy spełnia niżej wymieniony warunek, Pierwszy to odtwarzacz, którego używamy, powinien być w trybie pełnoekranowym, drugi to upewnienie się, że film powinien być Granie w nim, a trzeci to PIP Powinien być obsługiwany przez urządzenie, a na koniec napisz metodę delegowania, aby przywrócić interfejs odtwarzacza, gdy użytkownik powróci z trybu Obraz w obrazie.
Implementacja z _AVPictureInPictureController: Przykład roboczy znajduje się w poniższym wątku. Jak wyświetlić AVPictureInPictureController?
Drążenie problemu: aby potwierdzić, że niezadeklarowany błąd nie był spowodowany lukami w implementacji i był spowodowany środowiskiem w Xcode, Pobierz źródło, a następnie dodaj folder Źródła w innym folderze w obszarze roboczym. Dodaj folder, używając „ Dodaj pliki do ... ”i sprawdź teraz wewnątrz xcode.
MOŻLIWOŚĆ PROBLEMU ZWIĄZANEGO Z ODŚWIEŻANIEM W KODZIE X Spróbuj naprawić przez podejście 1 Uwzględnij klasę wyraźnie w nagłówku i / lub treści - zamiast w pliku * .pch. Wtedy ten błąd może zniknąć. Również usuwanie danych pochodnych działa raz na jakiś czas. Czy ostatnio przez przypadek zmieniłeś preferencje? Niektórzy dostają ten błąd, gdy używają ramdysku dla danych pochodnych, a następnie wracają do wartości domyślnych. Jest to najbardziej irytujący przypadek - ponieważ powoduje to pojawienie się tego błędu w prawie każdym pliku.
Spróbuj naprawić według podejścia 2 Czasami proste rozwiązanie może pomóc usunąć jedną z linii #import z pliku pch i dokonać ponownej kompilacji, która zakończy się niepowodzeniem zgodnie z oczekiwaniami. Następnie wstaw ponownie usuniętą linię, ponownie skompilowana i skompiluje się normalnie z pominięciem wszystkich fałszywych błędów.
MOŻLIWOŚĆ PROBLEMU PODCZAS DACHU BŁĘDU XCODE, OBSERWUJ PONIŻSZE KROKI Czyszczenie kompilacji: Command-Option-Shift-K, aby wyczyścić folder kompilacji. Resetuj symulator: wybierz Symulator iOS> Resetuj zawartość i ustawienia Uruchom ponownie Xcode Usuń folder DerivedData w ~ / Library / Developer / Xcode / DerivedData Uruchom ponownie komputer
Usuń foldery / var / w bardzo ukierunkowany sposób. rm -rf "$ (getconf DARWIN_USER_CACHE_DIR) /org.llvm.clang/ModuleCache"
Źródło: Jak opróżnić pamięć podręczną i wyczyścić wszystkie cele Xcode 4 i nowsze wersje Xcode Błędy „Użyj niezadeklarowanego identyfikatora”, dobrze się kompiluje / działa Użycie niezadeklarowanego identyfikatora w Xcode 9.0 https://developer.apple.com/documentation/avkit/adopting_picture_in_picture_in_a_standard_player
źródło
Aby stworzyć prosty odtwarzacz wideo
Najpierw musisz zaimplementować podstawowy odtwarzacz wideo w pliku ViewController.m swojego projektu, na przykład:
Aby uzyskać dalszą pomoc, przejdź
https://help.apple.com/xcode/mac/8.0/#/dev51a648b07
źródło