2017-07-03 9 views
4

は、肖像画の映像の場合には、それは、左&右側にや風景のビデオのための黒い部分が含まれていますビデオの上部に黒い部分があります。&黒い部分はビデオの一部であり、AVPlayerViewControllerではありません。ここにサンプルがあります。enter image description hereSwift - 動画のディメンションを取得する方法は?私は、各ビデオは、ビデオのどの部分もcropped.Forこれを取得しないように乗取得したビデオ編集アプリに取り組んでいます

これらの黒い部分をいくつかの部分でカバーする必要があります。CALayersです。 CALayerのフレーム(CGRect)になりますどのような

黒い部分を含むnaturalSizeプロパティのビデオディメンションが表示されています。

黒い部分がないとビデオの寸法を取得する方法はありますか? (実際のビデオコンテンツのサイズを意味します)または ビデオの黒い領域のCGRectを取得する方法はありますか?

+0

は私が正しくあなたを理解しているお役に立てば幸いですか!あなたのビデオの縦横比が必要ですか? –

+0

いいえ...アスペクト比は私が問題を解決するのを助けません –

+0

@ pigeon_39あなたは解決策を持っていますか?私は同じ問題に立ち往生してください。 –

答えて

5

これを試してみてください:

var mediaAspectRatio: Double! // <- here will be set aspect ratio for video with url 

private func initAspectRatioOfVideo(with fileURL: URL) { 
    let resolution = resolutionForLocalVideo(url: fileURL) 

    let width = resolution?.width 
    let height = resolution?.height 

    mediaAspectRatio = Double(height!/width!) 
} 

func resolutionForLocalVideo(url: URL) -> CGSize? { 
    guard let track = AVURLAsset(url: url).tracks(withMediaType: AVMediaTypeVideo).first else { return nil } 
    let size = track.naturalSize.applying(track.preferredTransform) 
    return CGSize(width: fabs(size.width), height: fabs(size.height)) 
} 

は、それが

+0

あなたは多分pigeon_39 @私の質問... –

+0

を取得していないかもしれません。 –

+0

これは素晴らしいです。どうもありがとう。明らかに「自然なサイズ」を使用するだけでは機能しませんが、コードは素晴らしいです!ありがとう! –

関連する問題