私のiPadアプリにビデオを実装していて、うまく動作します。しかし、私が取り組んでいる問題は、どこか別の場所に移動するためにビューを離れると、ビデオオーディオがバックグラウンドで再生し続けるということです。ビューを閉じる前にビデオを完全に停止してビューから削除する方法はありますか?iOS Media Framework
私が試み:
[moviePlayerController STOP]。 - しかし、それはちょうどアプリをクラッシュする映画を停止するようではありません。
[moviePlayerController.view removeFromSuperview]; - それはビューからビデオを削除しますが、オーディオは停止しません。
これは私がコードを持っているものです。
- (IBAction)PlayMediaButton:(id)sender
{
[moviePlayerController stop];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
NSString *movpath = [[NSBundle mainBundle] pathForResource:@"albert" ofType:@"mp4"];
MPMoviePlayerViewController* mpviewController = [[MPMoviePlayerViewController alloc]
initWithContentURL:[NSURL fileURLWithPath:movpath]];
if ([[NSFileManager defaultManager] fileExistsAtPath:movpath]) //Does file exist?
{
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:movpath]];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlaybackComplete:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayerController];
moviePlayerController.view.frame = CGRectMake(38, 37, 986, 618);
[self.view addSubview:moviePlayerController.view];
[moviePlayerController play];
if ([moviePlayerController respondsToSelector:@selector(setAllowsAirPlay:)]) //Allow airplay if availabe
[moviePlayerController setAllowsAirPlay:YES];
[moviePlayerController play];
}
}
- (void)moviePlaybackComplete:(NSNotification *)notification
{
MPMoviePlayerController *moviePlayerController = [notification object];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayerController];
[moviePlayerController.view removeFromSuperview];
[moviePlayerController release];
}
'-stop'を' moviePlayerController'に送信すると、どんなエラーが表示されますか?このメッセージをどこに送っていますか? –
'moviePlayerController'のインスタンスを作成する方法と、** stop **および** removeFromSuperview **を呼び出す場所を示すコードを貼り付けます。 – WrightsCS
私はビデオを呼び出す必要があり、再生が完了したときに追加しました。 – user964627