gpt4 book ai didi

swift - 无法在 tvOS 中播放 YouTube 视频。得到一个 "Operation requires a client data source to have been registered"

转载 作者:行者123 更新时间:2023-11-28 07:27:12 28 4
gpt4 key购买 nike

当我尝试在 tvOS 中播放 YouTube 视频时出现以下错误:

[MediaRemote] [MRPlaybackQueueServiceClient] playbackQueueRequest AFCF4995-D293-4B5B-82F0-E701186F639F PineBoard-21384 /A600.000000x600.000000/R[0:1] responded to asset request with error Error Domain=kMRMediaRemoteFrameworkErrorDomain Code=15 "Operation requires a client data source to have been registered." UserInfo={NSLocalizedDescription=Operation requires a client data source to have been registered.}

我正在使用 XCDYouTubeKit 库。

产生错误的代码是:

let playerViewController = AVPlayerViewController()
self.present(playerViewController, animated: true, completion: nil)

weak var weakPlayerViewController: AVPlayerViewController? = playerViewController

XCDYouTubeClient.default().getVideoWithIdentifier("9bZkp7q19f0") { video, error in
if (video != nil) {
let streamURLs = video?.streamURLs
var streamURL: URL?

if (streamURLs?[XCDYouTubeVideoQualityHTTPLiveStreaming] != nil) { streamURL = streamURLs?[XCDYouTubeVideoQualityHTTPLiveStreaming] }
else if (streamURLs?[XCDYouTubeVideoQuality.HD720.rawValue] != nil) { streamURL = streamURLs?[XCDYouTubeVideoQuality.HD720.rawValue] }
else if (streamURLs?[XCDYouTubeVideoQuality.medium360.rawValue] != nil) { streamURL = streamURLs?[XCDYouTubeVideoQuality.medium360.rawValue] }
else if (streamURLs?[XCDYouTubeVideoQuality.small240.rawValue] != nil) { streamURL = streamURLs?[XCDYouTubeVideoQuality.small240.rawValue] }

if let streamURL = streamURL {
weakPlayerViewController?.player = AVPlayer(url: streamURL)
weakPlayerViewController?.player?.play() // HERE IS WHERE I GET THE ERROR
}
}
}

我不明白为什么会出现此错误。甚至,如果我在 XCDYouTubeKit 存储库中运行 tvOS 演示代码,我也会遇到同样的错误。

最佳答案

将以下内容添加到 appDelegate.swift 应该可以修复错误:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let audioSession = AVAudioSession.sharedInstance()
do {
try audioSession.setCategory(.playback, mode: .moviePlayback)
}
catch {
print("Setting category to AVAudioSessionCategoryPlayback failed.")
}
return true
}

关于swift - 无法在 tvOS 中播放 YouTube 视频。得到一个 "Operation requires a client data source to have been registered",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56209600/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com