Gặp lỗi khi cố gắng sử dụng AVPictureInPictureControll trong iOS 13 hoặc tvOS 13


10

Tôi có một ứng dụng nhỏ chạy trên iOS và tvOS, nơi tôi đang hiển thị video trong UIView. Nó hỗ trợ iOS 12 và tvOS 12. Bây giờ muốn hiển thị PIP cho tvOS do đó cố gắng sử dụng AVPictureInPictureContoder gây ra lỗi Sử dụng định danh không được khai báo 'AVPictureInPicture Mùi.

Mặc dù mục tiêu triển khai được đặt thành tvOS 13. Trong Xcode, các khả năng -> Chế độ nền -> đã bật Âm thanh, Airplay và Hình ảnh trong Ảnh minh họa. Mã cơ bản này cho lỗi.

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

Bất kỳ cài đặt nào khác bị thiếu hoặc tôi cần phải làm gì khác?

Cảm ơn

Câu trả lời:


0

Không được hỗ trợ trong tvOS, như đã nêu trong tài liệu của Apple

SDK

iOS 9.0+ trở lên

macOS 10.15+

Mac Catalyst 13.0+


đã thử nhập AVFoundation cũng .. vẫn bị lỗi.
sia

- vâng .. vừa mới thử nó .. vẫn còn lỗi. Tôi nghĩ rằng "AVPictureInPictureControll" không được hỗ trợ trên tvOS13 (không chắc chắn).
sia

Không, không phải, kiểm tra câu trả lời cập nhật của tôi. Xin lỗi, tôi nghĩ rằng nó gây ra lỗi trên iOS
Dimitrie-Toma Furdui

theo liên kết này - developer.apple.com/documentation/avkit/, - có vẻ như có thể thực hiện nó (một lần nữa không chắc chắn)
sia

Ban đầu Hãy chắc chắn rằng bạn đặt danh mục âm thanh Phát lại, Nói chung là sử dụng AVPlayerViewCont kiểm soát để phát nội dung video. Chế độ PIP sẽ tự động được gọi nếu ứng dụng được phát triển đi vào nền, nhưng chỉ khi thỏa mãn điều kiện montioned. Trình phát mà chúng tôi đang sử dụng phải ở Chế độ toàn màn hình, Video nên phát trong đó và PIP nên được thiết bị hỗ trợ và cuối cùng viết phương thức ủy nhiệm để khôi phục giao diện người chơi của chúng tôi khi người dùng quay lại từ chế độ PIP. Video nên được phát trong đó và PIP nên được thiết bị hỗ trợ. nguồn: shorturl.at/AEXY8
redhatvicky

0

KHẢ NĂNG KHẢ NĂNG XÁC NHẬN ĐỐI VỚI CÁC GAPS TRONG THỰC HIỆN:

Thử nghiệm với AVPlayerViewCont Bộ điều khiển: Ban đầu, hãy chắc chắn rằng chúng tôi đặt thể loại âm thanh Phát lại, Nói chung khi chúng tôi sử dụng AVPlayerViewCont kiểm soát để phát nội dung video. Chế độ PIP sẽ tự động được gọi nếu ứng dụng đã phát triển vào nền, nhưng chỉ khi đáp ứng điều kiện được đề cập bên dưới, Đầu tiên là Trình phát mà chúng tôi đang sử dụng phải ở chế độ Toàn màn hình, thứ hai là chúng tôi nên đảm bảo rằng Video phải là Chơi trong đó và thứ ba là PIP Nên được thiết bị hỗ trợ và cuối cùng là phương thức ghi ủy nhiệm để khôi phục giao diện người dùng của chúng tôi khi người dùng quay lại từ Ảnh ở chế độ Ảnh.

Áp dụng với _AVPictureInPictureCont điều khiển: Bạn có thể tìm thấy một ví dụ hoạt động trong luồng dưới đây. Làm cách nào để hiển thị AVPictureInPictureControll?

Tìm hiểu vấn đề: Để xác nhận lỗi không được khai báo không phải do các lỗ hổng trong quá trình triển khai và đó là do môi trường trong Xcode, Tải xuống nguồn và sau đó thêm thư mục Nguồn vào thư mục khác trong không gian làm việc của bạn. Thêm thư mục bằng cách sử dụng " Thêm tùy chọn Tệp vào ... "và bây giờ xác minh bên trong xcode.

KHẢ NĂNG KHẢ NĂNG TUYỆT VỜI ĐỂ LẠI LẠI TRONG XCODE Hãy thử Khắc phục bằng cách tiếp cận 1 Bao gồm lớp rõ ràng trong tiêu đề và / hoặc phần thân - thay vì tệp * .pch. Sau đó, lỗi này có thể biến mất. Đồng thời xóa dữ liệu dẫn xuất hoạt động một lần trong một thời gian. Bạn đã thay đổi vị trí trong sở thích gần đây bởi bất kỳ cơ hội. Một số gặp lỗi này khi họ sử dụng ramdisk cho dữ liệu dẫn xuất và sau đó họ quay lại mặc định. Đây là trường hợp khó chịu nhất - vì nó gây ra lỗi này xuất hiện sau đó trong hầu hết các tệp.

Hãy thử Khắc phục bằng cách tiếp cận 2 Đôi khi, một giải pháp đơn giản có thể giúp xóa một trong các dòng #import khỏi tệp pch và biên dịch lại sẽ thất bại như mong đợi. Sau đó, đưa dòng bị xóa trở lại, biên dịch lại và nó được biên dịch bình thường với tất cả các lỗi sai.

KHẢ NĂNG CỦA VẤN ĐỀ DUR ĐẾN XCODE LACHI CACHE, SAU CÁC BƯỚC DƯỚI DẠNG Clean Build: Command-Option-Shift-K để dọn sạch thư mục bản dựng. Đặt lại Trình mô phỏng: chọn Trình mô phỏng iOS> Đặt lại Nội dung và Cài đặt Khởi động lại Xcode Xóa thư mục DeruredData của bạn trong ~ / Library / Developer / Xcode / DeruredData Khởi động lại máy tính

Xóa các thư mục / var / theo cách rất được nhắm mục tiêu. rm -rf "$ (getconf DARWIN_USER_CACHE_DIR) /org.llvm.clang/ModuleCache"

Nguồn: Cách xóa bộ nhớ cache và dọn dẹp tất cả các mục tiêu Xcode 4 và sau đó Xcode "Sử dụng mã định danh chưa được khai báo", biên dịch / chạy tốt Sử dụng số nhận dạng chưa được khai báo trong Xcode 9.0 https://developer.apple.com/documentation/avkit/adopting_picture_in


0

Để tạo một trình phát video đơn giản

Trước tiên, bạn sẽ cần triển khai trình phát video cơ bản trong tệp ViewControll.m của dự án của mình, như vậy:

#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

Để được giúp đỡ thêm đi qua https://help.apple.com/xcode/mac/8.0/#/dev51a648b07

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.