2017-03-12 8 views
0

Swift를 사용하여 서버에서 비디오를 재생하려고합니다. 내가 AVKit와 AVFoundation 프레임 워크 가져온DB에서 iOS- 비디오 스트리밍이 매우 느립니다. 어떻게하면 더 빨리로드 할 수 있습니까?

, 여기에 내 코드입니다 : 지금

import UIKit 
import AVKit 
import AVFoundation 


class SongViewController: UIViewController, SendInfoDelegate { 

let keyPathLoadedTimeRanges = "currentItem.loadedTimeRanges" 
var songInfo : Dictionary<String, Any>! 
var player : AVPlayer! 
var previousVC : UIViewController! 
let movie = AVPlayerViewController() 

.....

override func viewWillDisappear(_ animated: Bool) { 
    player.pause() 
    movie.player = nil 
    movie.removeFromParentViewController() 
    self.removeFromParentViewController() 
} 

override func viewDidAppear(_ animated: Bool) { 
    view.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) 
} 

....

func loadVideo (videoURL: String) { 

    //Load video in Avplayer 
    let movieurl : URL = URL(string: videoURL)! 

    movie.view.frame = videoContainerView.bounds 

    player = AVPlayer(url: movieurl) 
    movie.player = player 
    self.addChildViewController(movie) 
    videoContainerView.addSubview(movie.view) 

    player.play() 

    player.addObserver(self, forKeyPath: keyPathLoadedTimeRanges, options: .new, context: nil) 

    controllsContainerView.frame = videoContainerView.frame 
    videoContainerView.addSubview(controllsContainerView) 
    controllsContainerView.addSubview(activityIndicatorView) 
    activityIndicatorView.centerXAnchor.constraint(equalTo: videoContainerView.centerXAnchor).isActive = true 
    activityIndicatorView.centerYAnchor.constraint(equalTo: videoContainerView.centerYAnchor).isActive = true 

} 

그 재생 시작 8 ~ 15 초. 로딩 시간을 늦춰야합니다. 웹 사이트에서 비디오는 3 초 후에 재생되기 시작합니다.

답변

0

렌더링 할 때 높은 프레임 속도로 인해 재생하려고하는 비디오 파일이 매우 큽니다. (비디오 클립 당 200 MB 이상)

비디오를 30 프레임 속도로 다시 렌더링하여 파일을 훨씬 작게 만들고로드 속도를 크게 향상 시켰습니다.