服务器离服务器很远时,AVPlayer流太长时间

时间:2019-04-11 12:44:59

标签: ios streaming avplayer

我正在使用AVPlayer为iOS实现播放器。 我正在使用指向后端服务的链接,该链接返回301并重定向到指向7Digital中歌曲的链接。

西班牙(我在哪里)的延迟时间是: ping到后端:40毫秒 ping到7 Digital:20毫秒

当我在西班牙播放歌曲时,需要2秒钟才能开始播放。

由于某种原因,如果我从新加坡播放那首歌,则需要8秒钟才能开始播放。在这8秒钟内,AVPlayer.reasonForWaitingToPlayAVPlayerWaitingWhileEvaluatingBufferingRateReason,直到开始播放为止。

在新加坡的等待时间是:

ping到后端:360毫秒。 ping到7 Digital:300毫秒。

我尝试过像VLCKitStreamingKit这样的不同球员,结果都一样。

我也尝试使用[player playImmediatelyAtRate:1]player.automaticallyWaitsToMinimizeStalling=false;来获得相同的结果。

如果我使用这首歌:[http://techslides.com/demos/samples/sample.mp3][1],则在新加坡开始播放需要4秒钟,而在西班牙则需要2.5秒。

从新加坡

ping到techslides.com:500毫秒。 从西班牙ping至techslides.com:150毫秒。

如果我通过浏览器播放这些歌曲,那么在西班牙和新加坡都不会出现延迟。

你知道这里发生了什么吗?真是令人困惑。

编辑:

这是我正在使用的代码:

    NSURL *url = [[NSURL alloc] initWithString:urlString];
    AVAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil];
    AVPlayerItem *anItem = [AVPlayerItem playerItemWithAsset:asset];
    player.automaticallyWaitsToMinimizeStalling=false;
    player = [AVPlayer playerWithPlayerItem:anItem];
    [player addObserver:self forKeyPath:@"status" options:0 context:nil];
    [player addObserver:self forKeyPath:@"timeControlStatus" options:0 context:nil];

    //[player play];
    [player playImmediatelyAtRate:1];

0 个答案:

没有答案