AVPlayer “freezes” the app at the start of buffering an audio stream
Don’t use playerItemWithURL it’s sync. When you receive the response with the url try this: AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:url options:nil]; NSArray *keys = @[@”playable”]; [asset loadValuesAsynchronouslyForKeys:keys completionHandler:^() { [self.player insertItem:[AVPlayerItem playerItemWithAsset:asset] afterItem:nil]; }];