2016-09-21 45 views
1

我使用player-swift(即:https://github.com/piemonte/Player)在我的應用程序中顯示視頻內容。我創建了一個UIViewController,並在那裏添加了一個view並將其分配給它,稱爲PlayerView。到現在爲止還挺好。爲什麼我的約束在swift/storyboard中無法正常工作?

在我的代碼開始,如下所示:現在

self.videoPlayer = Player() 
self.videoPlayer.delegate = self 
self.videoPlayer.view.frame = myVideo.bounds 

self.addChildViewController(self.videoPlayer) 
myVideo.addSubview(self.videoPlayer.view) 
self.videoPlayer.didMoveToParentViewController(self) 
    let tapGestureRecognizer: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTapGestureRecognizer(_:))) 
    tapGestureRecognizer.numberOfTapsRequired = 1 
    self.videoPlayer.view.addGestureRecognizer(tapGestureRecognizer) 

self.videoPlayer.fillMode = "AVLayerVideoGravityResizeAspectFill" 

self.videoPlayer.setUrl(url) 

self.videoPlayer.playFromBeginning() 
self.videoPlayer.playbackLoops = true 

,因爲我打的視頻格式480×640(肖像模式),我認爲有關分配以下限制:

enter image description here

enter image description here

而現在,當我打開它在iPhone 6S再加上,我看到:

enter image description here

如此 - 因爲我把尾隨的空間爲0 - 爲什麼還是有這個白色條紋在屏幕的右側?

在另一方面,適用於iPhone 4s,視頻裁剪:

enter image description here

,並在iPhone 6是罰款:

enter image description here

什麼樣的約束我應該應用,以便它在每臺設備上都與iPhone 6上相同?我只是希望它被水平拉伸,然後垂直長度應該自動調整(使長寬比保持在480x640)

=================== ===========================

夥計們,正如我在下面的評論部分寫的 - 當我刪除播放器並保持正常用相同的約束來觀察 - 一切都有效,所以它必定是一個球員本身的錯誤......你能幫我區分哪裏可能是錯的嗎?

==============================================

在我的Storyboard中,我將顏色playerView設置爲淺灰色。我再次運行模擬器,我看到:

enter image description here

這意味着有存儲播放器視圖自身的一些其他層。我通過插件的代碼去,發現這個:

public override func loadView() { 
    self.playerView = PlayerView(frame: CGRectZero) 
    self.playerView.fillMode = AVLayerVideoGravityResizeAspect 
    self.playerView.playerLayer.hidden = true 
    self.view = self.playerView 
} 

這裏https://github.com/piemonte/Player/blob/master/Sources/Player.swift

,所以我想我需要建立某種程度上的制約:self.playerView.playerView。但我該怎麼做呢?

+0

你在哪裏調用你的代碼? viewDidLoad中? – BJHStudios

+0

是的,視圖確實加載了,我想也許我應該以某種方式設置來自代碼而不是故事板的約束,但仍然...如果我將其設置在故事板本身上,它應該沒問題(在我看來)。 。 – randomuser1

+0

該視圖尚未在viewDidLoad中設置其大小。嘗試調用從viewDidAppear,看看它是否表現不同 – BJHStudios

回答

0

約束到側邊必須是-20這樣的視頻會出現全屏,0離開額外的空間,你可以看到這一點,如果你拖動以保證金的邊緣,我會推薦給Ctrl拖動以主視圖和等寬度爲他的超級視圖

+0

@LuizPerez我只是增加了一些更多的信息,我的主要問題,你可以看看,並告訴我,是否可能是正確與否,以及如何我應該繼續嗎? – randomuser1

+0

好吧,讓我直截了當地說,你是在主視圖中添加玩家視圖吧?你可以設置從故事板的寬度,只需按Ctrl +從播放器視圖拖動到主視圖,並選擇相等的寬度,現在如果玩家在一個子視圖中,並且玩家本身是另一個視圖,意味着你有3個圖層是正確的? (mainView,childView和playerView),告訴我這是否正確 –

+0

所以這是它的外觀:http://imgur.com/IFSI1VS所以好像我有2層,我不知道如何達到第三個(玩家自己存儲的確切位置)... – randomuser1

相關問題