加载在 tvOS 17 上播放的视频现在无法在 tvOS 17.2 中播放。并非所有视频甚至特定类型的所有视频都如此。
此代码在 tvOS 17 上运行良好,但在 17.2 上运行不佳
import SwiftUI
import AVKit
struct ContentView: View {
var body: some View {
let player = AVPlayer(url: URL(string: "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4")!)
VideoPlayer(player: player)
.onAppear {
player.play()
}
}
}
我尝试重新加载元数据。我尝试从 AVAsset 而不是 URL 制作播放器。我似乎看不出是什么让它适用于某些视频,而不是所有视频,以及与 tvOS 17 到 17.2 有何不同。
我相信 tvOS 17.2 模拟器可能存在特定问题。根据我的经验,在运行 tvOS 17.2 的实际设备上进行测试时,一切都按预期运行。
模拟器可能存在另一个问题,但每次身体刷新时,上面代码中的玩家都会重新创建。 AVPlayer 应该保存在 @State 变量中,试试这个:
struct ContentView: View {
@State private let player = AVPlayer(url: URL(string: "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4")!)
var body: some View {
VideoPlayer(player: player)
.onAppear {
player.play()
}
}
}