Siri 搜索深度链接集成的 tvOS 问题
tvOS issue with Siri search deeplinking integration
我有一个问题,当用户正在播放视频时,当视频正在播放时,他使用 siri 搜索不同的电影,这将加载其相应的电影详细信息页面,然后 select 播放那部电影深层链接到您正在播放电影的应用程序,当我播放新的 selected 电影并关闭 avplayer 和 avplayercontroller 时,之前视频中的音频仍在继续播放。尽管我从 window 中清除了所有子视图并再次初始化其超级视图控制器 class,但不知何故 avplayer 未被清除。我不知道我能做些什么来擦除旧的 avplayer 实例。如果有人有任何建议或遇到类似问题,请告诉我。
几点建议:
- 你在继承
AVPlayerViewController
吗?如果是这样,那是个坏主意。 API 文档特别指出不要那样做。
- 添加一个
deinit
功能。如果在关闭旧的 AVPlayer
时没有调用它,您就知道存在保留问题。这通常是由注册通知或边界时间观察者引起的。
- 如果您的视图控制器有对
AVPlayer
对象的引用,您可以尝试覆盖 viewDidDisappear
函数来调用 player.pause() 然后首先将播放器引用设置为AVPlayer()
的新实例然后到 nil
。不知道为什么这有帮助,但有时确实有用。
绝对执行上面的#2。如果 deinit 没有被调用,你肯定有问题。
我有一个问题,当用户正在播放视频时,当视频正在播放时,他使用 siri 搜索不同的电影,这将加载其相应的电影详细信息页面,然后 select 播放那部电影深层链接到您正在播放电影的应用程序,当我播放新的 selected 电影并关闭 avplayer 和 avplayercontroller 时,之前视频中的音频仍在继续播放。尽管我从 window 中清除了所有子视图并再次初始化其超级视图控制器 class,但不知何故 avplayer 未被清除。我不知道我能做些什么来擦除旧的 avplayer 实例。如果有人有任何建议或遇到类似问题,请告诉我。
几点建议:
- 你在继承
AVPlayerViewController
吗?如果是这样,那是个坏主意。 API 文档特别指出不要那样做。 - 添加一个
deinit
功能。如果在关闭旧的AVPlayer
时没有调用它,您就知道存在保留问题。这通常是由注册通知或边界时间观察者引起的。 - 如果您的视图控制器有对
AVPlayer
对象的引用,您可以尝试覆盖viewDidDisappear
函数来调用 player.pause() 然后首先将播放器引用设置为AVPlayer()
的新实例然后到nil
。不知道为什么这有帮助,但有时确实有用。
绝对执行上面的#2。如果 deinit 没有被调用,你肯定有问题。