2011-07-04 10 views
4

私はAVPlayerを使ってオンラインムービーを再生しています。それは正常に動作しています。今問題は、ムービーの再生が始まる前にビューから飛び出すと、バックグラウンドプロセスが実行され続けることです。ムービーがロードされると、バックグラウンドで再生が開始されます。AVPlayerはバックグラウンドで動作し続ける

私はviewWillDisappearでプレーヤーを解放しようとしました。しかし、それは動作しません。

- (void)viewWillDisappear:(BOOL)animated 
{ 
    if (self.player.currentItem.status != AVPlayerItemStatusReadyToPlay) 
    { 
     [self.player.currentItem removeObserver:self forKeyPath:kRateKey]; 
     [self.player.currentItem removeObserver:self forKeyPath:kStatusKey]; 
     [self.player.currentItem removeObserver:self forKeyPath:kTimedMetadataKey]; 
    } 
    [self.player pause]; 
    [self.player release]; 
    [self.playerLayerView release]; 

    [super viewWillDisappear:animated]; 
} 

誰でも助けてください。事前に おかげ

+0

あなたは、どこにでもプレイヤオブジェクトを保持してなかったので、あなたがプレイヤオブジェクトの数 – iMOBDEV

+0

感謝を保持チェックする必要が役立つかもしれません提案のために。それをチェックします。 – Nir

答えて

0
- (void)viewWillDisappear:(BOOL)animated 
     if (self.player.playing==YES) { 
      [self.player stop]; 
      self.player=nil; 
     } 
    } 
+1

これは、ビデオの再生が開始されたときにのみ有効です。私はビデオが再生準備ができておらず、スレッドがバックグラウンドで動作しているときにこの問題に直面しています。私はこのスレッドを停止したい。 – Nir

+0

この方法であなたのプレーヤーを破壊したいのはなぜですか?別のビューが表示されたり上にプッシュされ、このビューに戻ると、もうプレイヤーはありません。 –

0

は、これは...解放した後に、それはまだそこになりますので

if (self.player.currentItem.playbackLikelyToKeepUp == 1) { 

    NSLog(@"Ready To Play"); 
    [self.player play]; 


    }else{ 

    NSLog(@" Show HUD Buffering..."); 

    [self.player pause]; 

    } 
関連する問題