首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVPlayer集fps

AVPlayer集fps
EN

Stack Overflow用户
提问于 2019-11-10 10:40:06
回答 1查看 675关注 0票数 0

嗨,我有个经典球员

代码语言:javascript
复制
var player = AVPlayer(url: fileUrl)
player.play() 

是否有可能设置球员的FPS?例如,我想在30 For播放慢动作视频(240 For)。

我试着

代码语言:javascript
复制
player.play()
player.rate = 0.5

但这只播放240 but的120 but视频。

可以在视频播放期间更改FPS。

代码语言:javascript
复制
let timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: false) {_ in
        player.rate = 0.5
}

这很好,但不能像上面那样设置30 set。

谢谢!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-10 16:44:54

如果我正确地理解了这个问题,你只想放慢内容的速度,所以设置速度是正确的方法(你也可以在内容播放期间这样做)。

如果您想从240到30 fps,而不是它意味着您希望将速率设置为30/240,这意味着1/8。

因此,这应该可以做到:

代码语言:javascript
复制
player.rate = Float(1)/Float(8)

您还应该将playerItem audioPitchAlgorithm设置为lowQualityZeroLatency以外的其他东西,以便允许它在0.5以下到1/32之间。

lowQualityZeroLatency

该算法适用于短的快进和回绕效果以及低质量的语音。这个速率是{0.5,0.666667,0.8,1.0,1.25,1.5,2.0}。

我测试的这个片段达到了1/8的速度。

代码语言:javascript
复制
let playerItem = AVPlayerItem(url: URL(string:"https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_ts/master.m3u8")!)
playerItem.audioTimePitchAlgorithm = .varispeed
let avPlayer = AVPlayer(playerItem: playerItem)

let vc = AVPlayerViewController()
vc.player = avPlayer

avPlayer.rate = 0.125
self.present(vc, animated: true)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58787821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档