有没有办法在使用AVPlayer进行HTTP直播音频流时选择比特率?

Spi*_*iri 11 iphone streaming objective-c avplayer

我正在使用AVPlayer流式传输以两种质量格式提供的音频内容.

问题是当从较低格式传递到较高格式(当wi-fi可用时由框架自动完成)时,播放时会有延迟.

有没有办法手动选择所需的质量,以防止这种延迟?

Nuc*_*ard 17

现在可以在iOS8中使用它.

在AVPlayerItem上签出preferredPeakBitRate.

以下是从Apple的文档中复制的:

此项目的网络带宽消耗所需的限制(以每秒位数为单位).
SWIFT:var preferredPeakBitRate:Double
OBJECTIVE-C:@property(nonatomic)double preferredPeakBitRate

将preferredPeakBitRate 设置为非零,表示播放器应尝试将项目播放限制为该比特率,以每秒位数表示.

如果无法降低网络带宽消耗以满足preferredPeakBitRate,则在继续播放该项目时将尽可能减少它.


Ste*_*veB 5

更新:在您投票之前,请注意这是在iOS 4期间的准确和接受的答案.有关更新的iOS 8答案,请参阅此处.


我已经为自己研究了这个问题,并且没有找到答案,这意味着我非常积极,没有办法做到这一点.Apple文档并不总是提供有关您可以对事物做什么的所有细节,但如果您查看所有可用的属性,方法等,您会发现没有任何东西可以让您调整流.

我认为这是HLS的重点.Apple希望iPhone用户能够获得最佳的流媒体体验.如果他们给开发人员控制以调整正在使用的流,那么就会失败.在切换流时,系统最了解.如果手机无法处理额外的带宽,那么它将不会(或不应该)切换到更高的流.我发现你可能想看一些东西......

您的文件是否以10秒的增量分块?如果不止于此,您可能希望缩短它们.

某些文件转换程序无法完全正确地获得比特率,如果是这种情况,您的手机可能会认为它具有带宽,例如96 kbps馈送,但实际上您的馈送速率为115 kbps.看一下这篇文章中接受的答案:iPhone - App再次被拒绝,HTTP Live Streaming 64kbps基线提要