swift iPhone锁定时无法播放视频

ttcibm8c  于 2023-01-08  发布在  Swift
关注(0)|答案(1)|浏览(249)

我正在开发一个闹钟,使用YouTube视频作为闹钟声音。所以这个应用程序将在后台while the phone is locked工作。
我现在所做的就是把youtube上的视频传给播放器,实际上一旦播放器开始工作,即使手机被锁定或处于后台,它也会继续播放视频。
但是 * 当前的问题 * 是when I am scheduling playing the video to be played when the phone is locked it doesn't play the video at all。下面是我播放视频的代码块:

XCDYouTubeClient.default().getVideoWithIdentifier(videoId) { [self] video, error in
   if let video {
      AVPlayerViewControllerManager.shared.video = video
      guard let url = video.streamURL else { return }
      self.player = AVPlayer(url: url)
         
      // Schedule playing the video after 3 sec (Just for testing)
      let timer = Timer(timeInterval: 3, repeats: false) { timer in
          self.player?.play()
      }

      RunLoop.current.add(timer, forMode: .common)
                
      self.player?.audiovisualBackgroundPlaybackPolicy = .continuesIfPossible
  } else {
      print(error!.localizedDescription)
  }
}
    • 提示:**
  • 我使用的是SwiftUI
  • XCDYouTubeClient是获取Youtube视频的第3方库。

以下是我在手机锁定时尝试播放视频时在调试器中收到的内容:

MEDeviceStreamClient.cpp:431   
AQME Default-InputOutput: client stopping after failed start: <AudioQueueObject@0x13b0c0c00; 
Unknown figplayer; [74708]; play>; running count now 0

谢谢
我希望即使手机锁定或应用程序在后台也能播放视频

irtuqstp

irtuqstp1#

你说:
我希望即使手机锁定或应用程序在后台也能播放视频
你的期望是不切实际的。当你的应用程序在后台运行或设备被锁定时,它不会获得任何处理器时间。苹果强制执行这一规定,以减少电池消耗。只有特定类型的应用程序允许在后台运行(流媒体音乐播放器、逐圈导航应用程序、VoIP应用程序,以及可能的一两个其他应用程序)。

相关问题