尝试在iOS 13或tvOS 13中使用AVPictureInPictureController时出现错误


10

我有一个可在iOS和tvOS上运行的小应用程序,并在UIView中显示视频。它确实支持iOS 12和tvOS 12。 ”。

即使部署目标设置为tvOS13。在Xcode中,功能->后台模式->启用了“音频,Airplay和画中画”。此基本代码给出了错误。

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

是否缺少其他设置或我需要做的其他事情?

谢谢

Answers:


0

如Apple 文档中所述,tvOS不支持

开发包

iOS 9.0以上

macOS 10.15以上

Mac Catalyst 13.0以上


尝试导入AVFoundation也..仍然相同的错误。
sia

-是的..刚才尝试了..还是一样的错误。我认为tvOS13不支持“ AVPictureInPictureController”(不确定)。
sia

不,不是,请检查我的最新答案。抱歉,我认为这给iOS带来了错误
Dimitrie-Toma Furdui

按照这个链接- developer.apple.com/documentation/avkit/... -看起来可能可以(再次不知道)实现它
SIA

最初,请确保您设置了“播放音频”类别,通常是在使用AVPlayerViewController播放视频内容时使用的。如果已开发的应用程序进入后台,则PIP模式将自动被调用,但前提是满足指定条件。我们正在使用的播放器应处于全屏模式,设备应支持视频播放并且PIP应该受设备支持,并在用户从PIP模式返回时最终编写委托方法以恢复播放器UI。该设备应支持视频播放,并且应支持画中画。来源:shorturl.at/AEXY8
redhatvicky

0

由于存在差距而可能产生的问题:

AVPlayerViewController的使用经验:首先确保我们设置了Playback音频类别,通常当我们使用AVPlayerViewController播放视频内容时。如果已开发的应用程序进入后台,则PIP模式将自动被调用,但前提是满足以下条件,第一个是我们使用的播放器应处于全屏模式,第二个是要确保视频应处于在其中播放,第三个是PIP。设备应支持该功能,并且最重要的是,当用户从“图片模式”下返回时,所有写委托方法都可恢复我们的播放器UI。

_AVPictureInPictureController的实现:您可以在下面的线程中找到一个有效的示例。 如何显示AVPictureInPictureController?

深入研究问题: 为了确认未声明的错误不是由于实现方面的差距,而是由于Xcode中的environmnet,请下载源,然后将Sources文件夹添加到工作空间中的另一个文件夹中。使用“将文件添加到...”选项,现在在xcode中进行验证。

可能由于XCODE中的刷新而出现问题 尝试按方法解决1 在标题和/或主体中显式包括该类-而不是* .pch文件。然后,该错误可能消失。另外,偶尔删除导出的数据也会起作用。您最近是否有机会更改偏好设置中的位置?有些人在使用虚拟磁盘获取派生数据然后返回默认值时会收到此错误。这是最令人讨厌的情况-因为它会导致几乎每个文件中都出现此错误。

尝试按方法2进行修复 有时,一个简单的解决方案可能会帮助从pch文件中删除#import行之一,然后重新编译,这将按预期失败。然后将删除的行放回原位,重新编译,并且在所有错误错误消失之后都可以正常编译。

可能由于XCODE错误而导致错误,请按照以下步骤进行操作清理构建:Command-Option-Shift-K清理构建文件夹。重置模拟器:选择iOS模拟器>重置内容和设置重新启动Xcode删除〜/ Library / Developer / Xcode / DerivedData重新启动计算机中的DerivedData文件夹

以非常有针对性的方式删除/ var / folders。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_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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.