在单元测试期间,可以使用KVO观察AVPlayerItem的状态更改。可以创建一个AVPlayerItem并添加一个观察者来检测其状态。然后设置其状态并通知观察者,以模拟状态更改。下面是一个示例代码:
func testAVPlayerItemStatusChanges() {
let avPlayerItem = AVPlayerItem(url: URL(string: "https://example.com/example.mp4")!)
var avPlayerItemStatus: AVPlayerItem.Status?
let expectation = self.expectation(description: "AVPlayerItem status changed")
let observer = avPlayerItem.observe(\.status, options: [.new]) { (_, change) in
avPlayerItemStatus = change.newValue
expectation.fulfill()
}
// set the status and simulate a change
avPlayerItem.status = .failed
observer.invalidate()
waitForExpectations(timeout: 1, handler: nil)
XCTAssertEqual(avPlayerItemStatus, .failed)
}
上一篇:AVPlayerItem与hls URL无法向前/向后步进。
下一篇:AVPlayer可以使用.m4a的文件扩展名工作,但不能使用.aac扩展名,使用AVAssetExportSession时也是如此。