gpt4 book ai didi

swift - AVPlayer 不播放音频

转载 作者:行者123 更新时间:2023-11-28 13:58:34 24 4
gpt4 key购买 nike

我正在尝试播放使用 MPMediaPickerController 选取的 url 音频文件,并在 player 对象上附加一个观察者。我不知道为什么播放器不播放音频文件,设备上没有声音输出,也没有显示错误。

var timeObserverToken: Any?

func addPeriodicTimeObserver(url: URL) {

let playerItem = AVPlayerItem(url: url)
let player = AVPlayer(playerItem: playerItem)
player.play()


// Invoke callback every half second
let interval = CMTime(seconds: 0.5,
preferredTimescale: CMTimeScale(NSEC_PER_SEC))

let mainQueue = DispatchQueue.main
timeObserverToken = player.addPeriodicTimeObserver(forInterval: interval, queue: mainQueue) { [weak self] time in

//it is never called
print("time is \(time)")
}
}//end addPeriodicTimeObserver

最佳答案

您应该在您的类/结构中将 AVPlayer 声明为一个全局变量。因此,从 addPeriodicTimeObserver 函数中移除 player 并在全局声明。

这背后的原因是:

局部变量(在函数内部声明的变量)一旦函数返回就会被释放;在这种情况下,player 在播放之前 就被释放了。

实例变量(在类范围内声明的变量)一旦类实例被释放就会被释放(除非有一个保留循环)。

如果使用真实设备进行测试,请确保它不是静音模式😉

关于swift - AVPlayer 不播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53727598/

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