title: AVPlayer replaceCurrentItemWithPlayerItem not working on iOS 4.3.3+
body: <p>I have an audio player that I'm building using AVPlayer.</p>
  
  <p>Currently, I keep the <code>player</code> instance around and when I need to swap tracks (either from a manual selection or the track has reached the end) I create a new <code>AVPlayerItem</code> and I call <code>replaceCurrentItemWithPlayerItem</code> with the new item.</p>
  
  <p>According to the docs, <code>replaceCurrentItemWithPlayerItem</code> is an asynchronous operation, so I also observe the <em>currentItem</em> key path of the player.  When that gets called, I tell my player to play.</p>
  
  <p>Here is the relevant code:</p>
  
  <pre><code>AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:asset];
  [playerItem addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:CHStreamingAudioPlayer_PlayerItemStatusChangedContext];
  
  if (!_player) {
      _player = [[AVPlayer alloc] initWithPlayerItem:playerItem]; 
      [_player addObserver:self forKeyPath:@"status"          options:NSKeyValueObservingOptionNew context:CHStreamingAudioPlayer_PlayerStatusChangedContext];
      [_player addObserver:self forKeyPath:@"currentItem"     options:NSKeyValueObservingOptionNew context:CHStreamingAudioPlayer_PlayerCurrentItemChangedContext];
  } else {
      [_player replaceCurrentItemWithPlayerItem:playerItem];
  }
  </code></pre>
  
  <p>And here is the key value observation callback:</p>
  
  <pre><code>- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
      if (context == CHStreamingAudioPlayer_PlayerCurrentItemChangedContext) {
          NSLog(@"Player's current item changed! Change dictionary: %@", change);
          if (_player.currentItem) {
              [self play]; //&lt;---- doesn't get called
          }
      } else {
          [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
      }
  }
  </code></pre>
  
  <p>On iOS 4.3.3 (and iOS 5) my key observation method is called but <code>_player.currentItem</code> is always <code>nil</code>.  On 4.2.1 and 4.3.2 this property contains the actual value.  This method is never called again.  So in essence, replacing seems to always fail.</p>
  
  <p>This seems like a bug, but perhaps I'm doing something wrong.</p>