gpt4 book ai didi

iphone - AVURLAsset 视频缓冲

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:30:00 33 4
gpt4 key购买 nike

我想使用 AVPlayer 缓冲视频。我播放一个视频,我希望在第二个视频开始时没有延迟。一种想法是将 AVURLAsset 与此代码一起使用:

     AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:urlNext options:nil];
NSArray *keys = [NSArray arrayWithObject:@"playable"];
[asset loadValuesAsynchronouslyForKeys:keys completionHandler:^()
{
dispatch_async(dispatch_get_main_queue(), ^
{
AVPlayerItem *nextVideo = [[AVPlayerItem alloc] initWithAsset:asset];
});
}];

这种方式的想法是预加载下一个视频,当第一个视频停止时,播放它。但现在这仍然不起作用,下一个视频也没有出现。你知道我的想法是否正确,错误在哪里?或者您有其他使用 AVPlayer 和缓冲的想法吗?谢谢。

最佳答案

目前,我找到了一个不太优雅但可以在模拟器中运行的解决方案(我必须在设备中对其进行测试)。我使用了 How to reduce iOS AVPlayer start delay 的想法编号 1我创建了另一个 AVPlayer。它只是存储下一个视频(我播放并暂停它)。

    AVPlayerItem *playerItemNext = [AVPlayerItem playerItemWithURL:urlnext];
AVPlayer *videoPlayerNext = [AVPlayer playerWithPlayerItem:playerItemNext];
[videoPlayerNext play];
[videoPlayerNext pause];

当我必须真正播放下一个视频时,我只需执行以下操作:

     videoPlayer = videoPlayerNext;

其中 videoPlayer 是我的播放器。显然欢迎更好的解决方案!

关于iphone - AVURLAsset 视频缓冲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17988267/

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