iOS 13 또는 tvOS 13에서 AVPictureInPictureController를 사용하려고하면 오류가 발생합니다.


10

UIView에서 비디오를 표시하는 iOS 및 tvOS에서 실행되는 작은 응용 프로그램이 있습니다 .iOS 12 및 tvOS 12를 지원합니다. 이제 tvOS에 PIP를 표시하려고하므로 AVPictureInPictureController를 사용하려고하면 "선언되지 않은 식별자 'AVPictureInPictureController 사용'이 발생합니다 ”.

배치 대상이 tvOS 13으로 설정되었지만 Xcode에서 기능-> 백그라운드 모드->“오디오, 방송 및 Picture In Picture”를 활성화했습니다. 이 기본 코드는 오류를 제공합니다.

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

다른 설정이 없거나 필요한 것이 있습니까?

감사

답변:


0

Apple 설명서에 명시된대로 tvOS에서 지원되지 않습니다

SDK

iOS 9.0 이상

macOS 10.15 이상

맥 카탈리스트 13.0+


AVFoundation 가져 오기도 시도했습니다. 여전히 같은 오류입니다.
sia

-예 .. 지금 시도했습니다. 여전히 같은 오류입니다. tvOS13에서 "AVPictureInPictureController"가 지원되지 않는 것 같습니다 (확실하지 않음).
sia

아니요, 업데이트되지 않은 답변을 확인하십시오. 죄송합니다, 나는 그것이 iOS의 오류 준다 생각
Dimitrie - 토마 Furdui

-이 링크를 따라 developer.apple.com/documentation/avkit/... - 외모 것이 가능 (하지 않도록 다시)를 구현하는 수
SIA

처음에는 비디오 콘텐츠를 재생하기 위해 AVPlayerViewController를 사용하는 경우 재생 오디오 범주를 설정해야합니다. PIP 모드는 개발 된 응용 프로그램이 background로 들어가면 montioned 조건을 만족하는 경우에만 자동으로 호출됩니다. 우리가 사용하는 플레이어는 전체 화면 모드에 있어야하고 비디오는 비디오에서 재생 중이어야하며 PIP는 장치에서 지원해야하며 사용자가 PIP 모드에서 돌아올 때 플레이어 UI를 복원하기위한 델리게이트 메서드를 작성해야합니다. 비디오가 재생되고 PIP가 장치에서 지원되어야합니다. 출처 : shorturl.at/AEXY8
redhatvicky

0

구현의 차이로 인한 문제 가능성 :

AVPlayerViewController 사용 경험 : 처음에는 일반적으로 AVPlayerViewController를 사용하여 비디오 콘텐츠를 재생할 때 Playback audio 범주를 설정해야합니다. PIP 모드는 개발 된 응용 프로그램이 백그라운드로 들어가면 자동으로 호출되지만 아래 언급 된 조건을 만족하는 경우에만, 첫 번째는 사용중인 플레이어가 전체 화면 모드에 있어야하고, 두 번째는 비디오가 있어야합니다 PIP에서 재생하고 세 번째는 PIP입니다. 장치에서 지원해야하며 사용자가 Picture in Picture 모드에서 돌아올 때 플레이어 UI를 복원하려면 마지막으로 모든 쓰기 위임 방법이 지원되어야합니다.

_AVPictureInPictureController로 구현 : 아래 스레드에서 실제 예제를 찾을 수 있습니다. AVPictureInPictureController를 표시하는 방법?

문제 드릴 다운 : 선언되지 않은 오류가 구현상의 차이로 인한 것이 아니며 Xcode의 environmnet으로 인한 것인지 확인하려면 소스를 다운로드 한 다음 작업 공간의 다른 폴더 안에 소스 폴더를 추가하십시오. 파일을 ...에 추가 "옵션을 선택하고 xcode 내부를 확인하십시오.

XCODE에서 새로 고침 한 문제의 가능성 접근 방법으로 수정 시도 1 * .pch 파일 대신 헤더 및 / 또는 본문에 클래스를 명시 적으로 포함시킵니다. 그러면이 오류가 사라질 수 있습니다. 또한 파생 데이터를 삭제하면 가끔씩 작동합니다. 최근에 환경 설정에서 위치를 변경 했습니까? 일부는 파생 데이터에 램 디스크를 사용한 후 기본값으로 돌아갈 때이 오류가 발생합니다. 이것은 가장 성가신 경우입니다. 거의 모든 파일에이 오류가 표시되기 때문입니다.

접근법 2로 수정 시도 때로는 간단한 해결책으로 pch 파일에서 #import 행 중 하나를 삭제하고 다시 컴파일하여 예상대로 실패 할 수 있습니다. 그런 다음 삭제 된 행을 다시 넣고 다시 컴파일 한 다음 모든 잘못된 오류가 발생하면 정상적으로 컴파일됩니다.

XCODE 오류 발생으로 인한 문제 가능성 아래 단계를 따르십시오. Build Build : Command-Option-Shift-K를 사용하여 빌드 폴더를 정리하십시오. 시뮬레이터 재설정 : iOS 시뮬레이터 선택> 컨텐츠 및 설정 재설정 Xcode 다시 시작 ~ / Library / Developer / Xcode / DerivedData 컴퓨터에서 DerivedData 폴더 삭제

매우 대상이 지정된 방식으로 / var / 폴더를 삭제하십시오. rm -rf "$ (getconf DARWIN_USER_CACHE_DIR) /org.llvm.clang/ModuleCache"

출처 : 캐시 비우기 및 모든 대상 정리 방법 Xcode 4 이상 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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.