avios播放器卡住了

avios播放器卡住了,ios,avplayer,avplayerlayer,Ios,Avplayer,Avplayerlayer,我使用AVPlayer播放远程.mp4文件(在目标C中)。视频从远程url加载,但播放1秒后播放器冻结。视频被卡住了,没有播放 谁能帮帮我吗 NSString *encodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *videoUrl = [[NSURL alloc]initWithString:encodedString]; self.asset

我使用AVPlayer播放远程.mp4文件(在目标C中)。视频从远程url加载,但播放1秒后播放器冻结。视频被卡住了,没有播放

谁能帮帮我吗

 NSString *encodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
 NSURL *videoUrl = [[NSURL alloc]initWithString:encodedString];
 self.asset = [AVAsset assetWithURL:videoUrl];
 self.player = [AVPlayer playerWithURL:videoUrl];
 self.player.actionAtItemEnd = AVPlayerActionAtItemEndNone;

 self.playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player];
 self.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;

[self.player addObserver:self forKeyPath:@"status" options:0 context:nil];


[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(playerItemDidReachEnd:)
                                             name:AVPlayerItemDidPlayToEndTimeNotification
                                           object:[self.player currentItem]];


self.playerLayer.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
[self.myPlayerView.layer addSublayer:self.playerLayer];


self.videoPlaybackPosition = 0;

[self.player play];

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {

   if (object == self.player && [keyPath isEqualToString:@"status"]) {
    if (self.player.status == AVPlayerStatusFailed) {
        NSLog(@"AVPlayer Failed --> %ld",(long)self.player.currentItem.status);

    } else if (self.player.status == AVPlayerStatusReadyToPlay) {
        NSLog(@"AVPlayerStatusReadyToPlay");

        [self.player play];


    } else if (self.player.status == AVPlayerItemStatusUnknown) {
        NSLog(@"AVPlayer Unknown");

    }
  }
}

您需要添加更多信息。没有足够的信息,甚至无法开始尝试查找问题。Post代码、调试控制台结果和/或屏幕截图。谢谢,好的。我正在发布我的代码。@lostatseahi,我已经添加了我的代码。您能帮助我吗?在observeValueForKeyPath中,如果状态为就绪,您将再次调用[self.player play],但请确保该玩家在再次调用之前尚未播放。你可以查看玩家的财产价格,看看它是否在玩。谢谢。你能为我提供一些示例代码吗?