2014-02-06 141 views
0

我有一個MPMoviePlayerController正在用來播放視頻。我正在使用subviews來創建水印標籤以放置視頻。我需要將水印放在實際視頻的頂部,而不是視頻邊緣或頂部的黑色空間。如何在MPMoviePlayerController中獲取視頻的實際大小?

我知道我可以使用naturalSize來獲取原始視頻尺寸。但是,當玩家視圖大於自然尺寸時,視頻會延伸以適應視圖。有沒有辦法在播放器視圖中獲得延伸視頻的大小?如果我知道視頻的實際大小,我應該能夠計算出正確放置水印的座標。

任何想法?

回答

1

您可以使用屬性naturalSize獲取影片的大小。

moviePlayer.naturalSize.height //to get the height of the frame player 

更新!

希望它可以幫助

-(CGRect)getResizedVideoFrame:(CGRect)naturalSize andPlayerViewSize:(CGRect)playerSize { 
    float resVi = naturalSize.size.width/naturalSize.size.height; 
    float resPl = playerSize.size.width/playerSize.size.height; 
    return (resPl > resVi ? CGRectMake(0, 0, naturalSize.size.width * playerSize.size.height/naturalSize.size.height, playerSize.size.height) : CGRectMake(0, 0,playerSize.size.width, naturalSize.size.height * playerSize.size.width/naturalSize.size.width)); 
} 
+0

的naturalSize給我的視頻(在一個特定的情況下,640×480)的天然大小。但是,當我將視頻放入全屏時,當我想要屏幕上的視頻大小(縮放以適合屏幕)時,naturalSize仍然會給我640x480。在全屏視頻的情況下,實際的視頻尺寸似乎是橫向設備的全寬度,幾乎是設備的整個高度。 – matt

+0

您需要創建一個算法來獲取調整後的幀大小,以自然大小和moviePlayer視圖大小爲基礎 –

+0

我使用我建議的算法更新了我的答案,只是將其稱爲寬度兩個參數,視頻的自然大小和播放器框架,如果它是全屏設置全屏框架:) –

相關問題