无法让 AVPlayer 实时传输大文件

问题描述 投票:0回答:1

我有非常大的 wav 文件(1.5+ GB - 对于 7.4.1 声音),当我使用 AVPlayer 流式传输它们时,它们需要 5 分钟以上才能开始加载。似乎是先下载整个文件,然后再播放。即使我使用 mp3 版本(75+ MB),在播放之前也会下载一分多钟。

我也尝试过:

        playerItem.preferredForwardBufferDuration = 10
        let player = AVPlayer(playerItem: playerItem)
        player.automaticallyWaitsToMinimizeStalling = false

        player.playImmediately(atRate: 1.0)

没有成功。

我尝试过使用 SwiftAudioPlayer 和其他使用 AVEngine 的模块,声音立即开始,但 UI 冻结并且声音严重断断续续。

声音在 Sola42d(我的首选框架)中工作正常,但我无法在应用程序暂停的情况下在后台播放声音。我用 Solar2d 构建了我的项目,然后添加了 Swift 模块来播放 AVPlayer(解决后台问题),但无法克服这些问题 - 要么在播放前等待几分钟,要么 CPU 饱和并卡顿。

我有什么选择?使用带有缓冲区和后台下载的 AVEngine 从头开始编码(我是 Swift 的初学者)? AVPlayer 是否有任何设置可以使流媒体适用于大文件?

avplayer audio-streaming
1个回答
0
投票

已解决。这一切都适用于大文件,我犯了一个愚蠢的范围错误,

这里有明确的定义:

© www.soinside.com 2019 - 2024. All rights reserved.