IOS 13 या TVOS 13 में AVPictureInPictureController का उपयोग करने की कोशिश करते समय त्रुटि हो रही है


10

मेरे पास छोटा ऐप है जो iOS और tvOS पर चलता है, जहाँ मैं UIView में एक वीडियो प्रदर्शित कर रहा हूँ। यह iOS 12 और tvOS 12 का समर्थन करता है। अब TVOS के लिए PIP दिखाना चाहता हूँ, इसलिए AVPictureInPictureController का उपयोग करने की कोशिश कर रहा है। यह अघोषित पहचानकर्ता का उपयोग 'AVPictureInPictureController' देता है। "।

भले ही tvOS 13. पर तैनाती का लक्ष्य निर्धारित किया गया हो। Xcode में, क्षमताओं -> पृष्ठभूमि मोड -> "ऑडियो, एयरप्ले और पिक्चर इन पिक्चर" सक्षम। यह मूल कोड त्रुटि देता है।

#import <AVKit/AVKit.h>
if ([AVPictureInPictureController isPictureInPictureSupported]) {
   // code 
}

किसी भी अन्य सेटिंग्स याद आ रही है या कुछ और जो मुझे चाहिए?

धन्यवाद

जवाबों:


0

TVOS में समर्थित नहीं है, जैसा कि Apple के प्रलेखन में कहा गया है

SDKs

iOS 9.0+

macOS 10.15+

मैक कैटलिस्ट 13.0+


AVFoundation भी आयात करने की कोशिश की .. अभी भी वही त्रुटि।
सिया

- हाँ .. अभी अभी कोशिश की है .. अभी भी वही त्रुटि। मुझे लगता है कि "AVPictureInPictureController" tvOS13 पर समर्थित नहीं है (निश्चित नहीं है)।
सिया

नहीं, यह नहीं है, मेरे अद्यतन उत्तर की जाँच करें। क्षमा करें, मैंने सोचा कि यह iOS पर त्रुटि देता है
दिमित्री-तोमा फुरदुई

इस लिंक के अनुसार - developer.apple.com/documentation/avkit/… - लगता है कि इसे लागू करना संभव हो सकता है (फिर से निश्चित नहीं)
sia

प्रारंभ में सुनिश्चित करें कि आप प्लेबैक ऑडियो श्रेणी सेट करते हैं, आम तौर पर वीडियो सामग्री चलाने के लिए AVPlayerViewController के उपयोग पर। यदि विकसित अनुप्रयोग पृष्ठभूमि में प्रवेश करता है, तो पीआईपी मोड स्वचालित रूप से आमंत्रित किया जाएगा, लेकिन केवल तभी जब असंतुष्ट स्थिति को संतुष्ट करता है। जिस प्लेयर का हम उपयोग कर रहे हैं, वह फुल स्क्रीन मोड में होना चाहिए, वीडियो उसमें प्ले होना चाहिए और पीआईपी को डिवाइस द्वारा समर्थित होना चाहिए और अंत में उपयोगकर्ता के पीआई मोड से वापस आने पर हमारे प्लेयर यूआई को पुनर्स्थापित करने के लिए प्रतिनिधि विधि लिखना चाहिए। वीडियो को इसमें बजाना चाहिए और पीआईपी को डिवाइस द्वारा समर्थित होना चाहिए। स्रोत: shorturl.at/AEXY8
redhatvicky

0

कार्यान्वयन में शामिल होने के लिए ISSUES की स्थिति:

AVPlayerViewController के साथ प्रयोग करें: शुरू में सुनिश्चित करें कि हम प्लेबैक ऑडियो श्रेणी सेट करें, आम तौर पर जब हम वीडियो सामग्री खेलने के लिए AVPlayerViewController का उपयोग करते हैं। यदि विकसित अनुप्रयोग पृष्ठभूमि में प्रवेश करता है, तो पीआईपी मोड स्वचालित रूप से आमंत्रित किया जाएगा, लेकिन केवल अगर नीचे दी गई स्थिति को संतुष्ट करता है, तो पहला खिलाड़ी वह है जिसका हम उपयोग कर रहे हैं, पूर्ण स्क्रीन मोड में होना चाहिए, दूसरा यह है कि हमें यह सुनिश्चित करना चाहिए कि वीडियो होना चाहिए इसमें खेलना और तीसरा एक है पीआईपी को डिवाइस द्वारा समर्थित होना चाहिए और अंतिम रूप से हमारे प्लेयर UI को पुनर्स्थापित करने के लिए प्रतिनिधि विधि लिखना चाहिए जब उपयोगकर्ता पिक्चर इन पिक्चर मोड से लौटता है।

_AVPictureInPictureController के साथ इंप्लांटेशन: आप नीचे दिए गए धागे में एक कार्यशील उदाहरण पा सकते हैं। AVPictureInPictureController कैसे प्रदर्शित करें?

समस्या को हल करना: अघोषित त्रुटि की पुष्टि करने के लिए कार्यान्वयन में अंतराल के कारण नहीं था और यह Xcode में environmnet के कारण था, स्रोत डाउनलोड करें और फिर अपने कार्यक्षेत्र में किसी अन्य फ़ोल्डर के अंदर स्रोत फ़ोल्डर जोड़ें। "फ़ोल्डर का उपयोग करके देखें" फ़ाइलें जोड़ें ... "विकल्प पर क्लिक करें और अब xcode के अंदर सत्यापित करें।

XCODE में सुधार की कोशिश करने के लिए ISSUE की संभावना 1 दृष्टिकोण से कक्षा को स्पष्ट रूप से हेडर और / या बॉडी में शामिल करें। * .pch फ़ाइल के बजाय। तब यह त्रुटि दूर हो सकती है। इसके अलावा व्युत्पन्न डेटा को एक बार में हटाने का काम करता है। क्या आपने हाल ही में किसी भी संयोग से वरीयताओं में स्थान बदला है। कुछ को यह त्रुटि तब मिलती है जब वे व्युत्पन्न डेटा के लिए रैमडिस्क का उपयोग करते हैं और फिर वे डिफ़ॉल्ट रूप से वापस जाते हैं। यह सबसे कष्टप्रद मामला है - चूंकि यह त्रुटि तब दिखाई देती है जब लगभग हर फाइल में दिखाई देती है।

दृष्टिकोण 2 से ठीक करने का प्रयास करें। कभी-कभी एक सरल समाधान pch फ़ाइल से #import लाइनों में से किसी एक को हटाने में मदद कर सकता है और फिर से शुरू हो सकता है जो अपेक्षित रूप से विफल हो जाएगा। हटाए गए लाइन को वापस डाल दिया, पुन: संकलित किया गया और इसे सभी गलत तरीके से संकलित किया गया।

XCODE ERROR CACHE के लिए ISURUE की स्थिति, निम्न स्तर को साफ करें: बिल्ड-फोल्डर को साफ करने के लिए कमांड- ऑप्शन- Shift-K। सिम्युलेटर रीसेट करें: iOS सिम्युलेटर> रीसेट सामग्री चुनें और सेटिंग्स को फिर से शुरू करें Xcode ~ / लाइब्रेरी / डेवलपर / Xcode / DerivedData पुनरारंभ कंप्यूटर में अपने DerivedData फ़ोल्डर को हटाएं

/ Var / फ़ोल्डरों को बहुत लक्षित तरीके से हटाएं। rm -rf "$ (getconf DARWIN_USER_CACHE_DIR) /org.llvm.clang/ModuleCache"

स्रोत: कैश खाली करें करने के लिए और स्वच्छ सभी Xcode 4 और बाद में लक्ष्य कैसे त्रुटियों, compiles Xcode "अघोषित पहचानकर्ता का उपयोग" / ठीक चलाता Xcode 9.0 में अघोषित पहचानकर्ता का उपयोग https://developer.apple.com/documentation/avkit/adopting_picture_in_picture_in_a_standard_player


0

एक साधारण वीडियो प्लेयर बनाने के लिए

सबसे पहले, आपको अपनी परियोजना के ViewController.m फ़ाइल में एक बुनियादी वीडियो प्लेयर लागू करना होगा, जैसे:

#import "ViewController.h"

#import <AVKit/AVKit.h>

@interface ViewController ()
@property(nonatomic) AVPlayerViewController *playerViewController;
@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  self.view.backgroundColor = [UIColor blackColor];

  // Create a stream video player.
  AVPlayer *player = [[AVPlayer alloc] init];
  self.playerViewController = [[AVPlayerViewController alloc] init];
  self.playerViewController.player = player;

  // Attach video player to view hierarchy.
  [self addChildViewController:self.playerViewController];
  self.playerViewController.view.frame = self.view.bounds;
  [self.view addSubview:self.playerViewController.view];
  [self.playerViewController didMoveToParentViewController:self];
}

@end

आगे की मदद के लिए https://help.apple.com/xcode/mac/8.0/#/dev51a648b07

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.