2017-05-04 9 views
0

私はリモートURLでビデオを再生するMPMoviePlayerControllerを使用して作業しています。プレイヤーを再利用して複数の動画を再生し、URLが動画を指していない場合、コントローラーは何の通知も戻さない。私はMPMoviePlayerPlaybackDidFinishNotification、MPMoviePlayerPlaybackStateDidChangeNotificationとMPMoviePlayerLoadStateDidChangeNotificationを試してみました。それらのどれも送られなかった。MPMoviePlayerControllerで無効なURLを処理する方法

また、カスタムタイムアウト機能を試してみましたが、以下のようにプレーヤーの停止機能を呼び出しました。しかし、何も起こりません。 MPMoviePlayerControllerはちょうどそこで死んでいるようで何もしません。

[self performSelector:@selector(checkTimeout) withObject:theMovie afterDelay:15]; 
 

 
-(void) checkTimeout { 
 
    [self.moviePlayer stop]; 
 
}

誰もがMPMoviePlayerControllerで無効なURLを処理する方法を知っていますか?

+0

一部の追加コードを表示 –

答えて

0

自分で解決策を見つけました。

MPMoviePlayerControllerに複数のURLを再生する問題があるようです。 2番目のURLが動画を指していないか無効である場合、プレーヤーは何もしません。だから、すべてのURLに対してMPMoviePlayerControllerの新しいインスタンスを作成し、MPMoviePlayerPlaybackDidFinishNotificationをリッスンしました。

0

無効なURLに関する通知を受け取らなかった場合、期間最大(initialplaybacktime、0)のタイマーを実行し、この時間内にMPMoviePlayerReadyForDisplayDidChange notificationを受け取らないと、ビデオが利用できないというエラーを生成します。

+0

プレイヤーがUIに追加され、少なくとも1つのビデオを再生しました。この場合、ソリューションは機能しますか? – jarly

+0

何枚のビデオが読み込まれていても、UIにプレーヤーが追加されていても、プレーヤーに新しいURLを読み込んだら、もう一度タイマーを再スケジューリングしてください。 – NeverHopeless

関連する問題