2016-06-20 53 views
0

當我點擊一張圖片時,顯示一個帶有視頻的彈出窗口。在彈出窗口中,視頻自動啓動。問題是我沒有與視頻交互(播放,暫停等)。所以現在,我找到了將其與AVPlayerItemDidPlayToEndTimeNotification循環的方式,但我希望用戶有能力播放/暫停。 這裏是我的代碼:當我將其放入彈出窗口中時,我沒有與視頻播放器的交互

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(itemDidFinishPlaying:) name:AVPlayerItemDidPlayToEndTimeNotification object:player]; 

    NSURL *url = [NSURL fileURLWithPath:mediaPath]; 
    player = [[AVPlayer alloc] initWithURL: url]; 
    controller = [[AVPlayerViewController alloc] init]; 
    controller.player = player; 
    controller.delegate = self; 
    controller.showsPlaybackControls = YES; 

    UIImageView *popView = [[[[[[NSBundle mainBundle] loadNibNamed:mediaType owner:self options:nil] objectAtIndex:0] viewLoadedFromXib] subviews] objectAtIndex:0]; 
    [controller.view setFrame:CGRectMake(0, 0, 850, 600)]; 
    [popView addSubview:controller.view]; 

    [player play]; 

我精確的,當我點擊視頻,與暫停視頻欄下方出現,但是當我按一下按鈕,沒有任何反應。

1ST編輯:看起來有一個AVTouchIgnoringView已由AVPlayerViewController自動添加。看起來有一個與UserInteraction的鏈接......但我試圖把它放到YES沒有成功。可能是我不這樣做的好看法。有任何想法嗎 ?

enter image description here

2ND編輯:這是增加了AVTouchIgnoringView的SETFRAME。所以你知道我怎樣才能改變框架的大小,而不會自動添加AVTouchIgnoringView

+0

是否有任何理由你不只是呈現AVPlayerViewController爲模式的看法?我不會建議像這樣展示它。在負責所有這些的視圖控制器上使用presentViewController:animated:方法。查看展示視圖控制器的部分https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/ – GCBenson

+0

我想將它作爲演示文稿彈出顯示。我有一張地圖,我想彈出一個視頻,地圖背後。客戶希望地圖總是顯示在後面(在iPad上)。我不明白爲什麼它不起作用,因爲當我點擊視頻兩次,有一個縮放,所以這意味着我有它的手,但我不能用下面的酒吧暫停視頻。非常奇怪... – Claudio

+0

看看UIPopoverPresentaionController,它會正確地呈現視圖控制器作爲iPad上的彈出窗口,但在iPhone上顯示全屏。這裏有大量的在線資源,所以我不需要在這裏發佈任何內容。 – GCBenson

回答

1

首先,我認爲UIImageView不正確,因爲你把視頻放在裏面,所以我建議你在UIView中改變。

 UIView *popView = [[[[[[NSBundle mainBundle] loadNibNamed:mediaType owner:self options:nil] objectAtIndex:0] viewLoadedFromXib] subviews] 

其次,我認爲你可能有視頻的用戶交互性。嘗試更大的尺寸以顯示帶有控件的底部欄。

//視頻調整

controller.view.frame = CGRectMake(0, 0, 900, 600);//for example 
+0

它是神奇的,它的作品。我非常執着於userInteractivity,這只是框架尺寸問題! (你對imageView是對的,我犯了一個錯誤)。謝謝。 – Claudio

相關問題