公司項目中,要求播放優酷視頻,因爲優酷官方視頻iOS SDK 太大(100M 以上)導入後致使項目打包文件過大,並且播放界面沒法自定義。因此採用了拼接視頻播放 URL,調用 UIWebView 播放視頻。ide
在UIWebView中點擊播放視頻,不能準確獲取視頻播放器開始顯示和 結束顯示的方法。查找了網上的解決方案,大可能是 使用監聽通知UIMoviePlayerControllerDidEnterFullscreenNotificatio MPMoviePlayerControllerDidEnterFullscreenNotification, 而後在去控制屏幕的旋轉。spa
可是這方案iOS8之後就已經失效了,目前沒法使用了。code
要實現用戶打開播放器和關閉播放起的事件。
網上找了解決方案決定採用客戶端接收系統通知實現 這兩個事件的獲取視頻
方法:使用系統通知
當點擊視頻加載出MPMoviewController的時候,至關於在Window上加了一層,會觸發到下面兩個通知。// 播放器即將播放通知server
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoStarted:) name:UIWindowDidBecomeVisibleNotification
object:self.view.window];
// 播放器即將退出通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoFinished:) name:UIWindowDidBecomeHiddenNotification object:self.view.window];
獲取到這兩個事件後,處理邏輯blog
- (void)videoStarted:(NSNotification *)notification { //NSLog(@"視頻 開始 播放"); } - (void)videoFinished:(NSNotification *)notification { //NSLog(@"視頻 結束 播放"); if ([self.loadingView isAnimating]) { [self.requestWebViewButton setHidden:NO]; [self.loadingView stopAnimating]; self.isFinishLoad = YES; } }