在AVPlayer上播放mp3或mp4(本地文件)或m3u8(流媒体)。 音质很好。 但是,当我将AVPlayer.rate更改为1.0以外的任何内容(例如0.8或1.2)时......音频质量很差。 这是在Mac OS上。
注意:我也向Apple提出了一个错误(ID 30497462),但我想我会检查这里是否有人有任何想法。如果Apple回复我的机票,我会为每个人更新。
我试图更改audioTimePitchAlgorithm - 我尝试了所有可能的值:AVAudioTimePitchAlgorithmTimeDomain,AVAudioTimePitchAlgorithmSpectral(默认值)和AVAudioTimePitchAlgorithmVarispeed,但是一旦AVPlayer.rate发生更改,它们听起来同样糟糕
尝试在Release配置和Debug配置中构建 - 结果相同。
有一些相关的StockOverflow线程,最值得注意的是:this,但建议是更改audioTimePitchAlgorithm - 正如我上面解释的那样没有帮助,或者尝试使用AVAudioPlayer进行各种操作 - 但是我需要播放视频。
如果有某种解决方法(例如Mac上有其他视频播放器吗?或者我可以将声音转移到AVPlayer吗?)那么我有兴趣继续这样做。
我想知道我的硬件是否有点太老了,我的规格是: MacBook Pro(13“,2011年末) 处理器:2.4 GHz Intel Core i5 内存:4 GB 1333 MHz DDR3 图形:Intel HD Graphics 3000 384 MB
代码是:
import AVFoundation
类ViewController:NSViewController {
let avPlayer = AVPlayer()
var avPlayerLayer: AVPlayerLayer!
@IBOutlet weak var speedBtn: NSButton!
override func viewDidLoad() {
super.viewDidLoad()
let view = self.view
avPlayerLayer = AVPlayerLayer(player: avPlayer)
view.layer?.insertSublayer(avPlayerLayer, at: 0)
let url = // TODO - add "PATH TO MP3 or MP4"
//let streamingUrl = NSURL(string: "https://content.jwplatform.com/manifests/vM7nH0Kl.m3u8") as! URL
let playerItem = AVPlayerItem(url: url)
avPlayer.replaceCurrentItem(with: playerItem)
avPlayerLayer.frame = view.bounds
}
@IBAction func speedBtnPressed(_ sender: Any) {
avPlayer.rate = 0.99
}
@IBAction func normalBtnPressed(_ sender: Any) {
avPlayer.rate = 1.0
}
override func viewWillAppear() {
avPlayer.play() // Start the playback
}
}