2016-08-05 183 views
1

我正在使用幾行UIViewController s進行演示。在每一個屏幕上,我都需要播放視頻。
這是我使用的每一個這些屏幕,用於播放視頻的代碼:使用AVPlayer播放視頻 - 視頻在某個點停止

NSURL *videoURL = [[NSBundle mainBundle]URLForResource:@"video" withExtension:@"mp4"]; 

AVPlayer *avPlayer = [[AVPlayer alloc]initWithURL:videoURL]; 
AVPlayerLayer *avPlayerLayer =[AVPlayerLayer playerLayerWithPlayer:avPlayer]; 

[avPlayerLayer setFrame:CGRectMake(0, 0, videoWidth, videoHeight)]; 

_videoView.layer.sublayers = nil; 
[_videoView.layer addSublayer:avPlayerLayer]; 

[avPlayer seekToTime:kCMTimeZero]; 
[avPlayer play]; 

首先屏幕的UIViewController這裏用戶可以選擇其中一個方案。在主屏幕上,我還使用上面編寫的代碼顯示視頻。用戶可以點擊下一個按鈕,然後我顯示下一個屏幕。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]; 

HomeViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"home_vc"]; 

[self.navigationController pushViewController:vc animated:YES]; 

當場景完成後,我再次顯示主屏幕,用戶可以選擇下一個場景。

經過幾個屏幕我有視頻問題。
在我應該看視頻的地方,我只能看到一個黑屏。我猜這個問題與內存有關,但我找不到解決方案。

+0

你可能莫名其妙地保留您的控制器。請添加您在控制器中使用的代碼。 – rkyr

回答

0

viewDidDisappear通話[avPlayer pause]方法,去除任何觀察員和你avPlayeravPlayerLayer refrence設爲零

+1

另外,當我添加這個仍然有同樣的問題。 – subasa