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