在 swift 中处理一个项目,我试图启动 AVPlayer,由于某种原因,它给了我一个异常,说
AudioHardware.cpp:1200:AudioObjectRemovePropertyListener:AudioObjectRemovePropertyListener:没有给定 ID 0 的对象。
我猜问题出在我的网址上。这是我的代码
func initPlayer() {
let url:NSURL = NSURL(string:"https://purelight1-163000.appspot.com/api/user/v2/media/track/60/sample")!
self.playerItem = AVPlayerItem(url: url as URL)
self.player=AVPlayer(playerItem: self.playerItem!)
let playerLayer=AVPlayerLayer(player: self.player!)
playerLayer.frame = CGRect(x: 0, y: 0, width: 10, height: 50) // actually this player layer is not visible
self.view.layer.addSublayer(playerLayer)
}
对我来说,这是因为模拟器的音频输出。
我使用音频捕获应用程序 iShowU 来进行不同的项目并设置耳机。但为了仅禁用模拟器的音频,我使用耳机(未插入)将“音频设备输出”设置为 iShowU 设置。它播放完加载的视频,然后就出现了这个问题。
将音频输出从
Simulator > I/O > Audio Output
切换到系统一并重新运行我的构建解决了我的问题。
该问题是由于模拟器而发生的。
我在 iPhone 14 模拟器上遇到了同样的问题,我通过选择“系统”作为音频输出并点击“设备”-->“删除所有内容和设置”解决了该问题...
Xcode 过于啰嗦。您只需编辑您的方案(产品 > 方案 > 编辑方案)并创建一个新的环境变量 OS_ACTIVITY_MODE 并将其值设置为禁用。