2017-03-12 13 views
0

私はSwiftを使ってサーバーからビデオを再生しようとしています。DBからのiOS-ビデオストリーミングは非常に遅いです。どうすればそれをより速くロードすることができますか?

私はAVKitとAVFoundationフレームワークをインポートした、ここに私のコードは次のとおりです。

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メガバイト、より多くの)

I 30フレームレートに再レンダリング映像は、それがファイルがはるかに小さくすると

劇的に読み込み速度を向上させます
関連する問題