Browse Source

Prefetch Bulk

master
Marco Schmickler 10 years ago
parent
commit
2b0dd18337
  1. 80
      .idea/kplayer.iml
  2. 134
      kplayer/photo/MediaPhotoController.swift
  3. 41
      kplayer/util/DataLoadOperation.swift

80
.idea/kplayer.iml

@ -5,62 +5,62 @@
<sourceFolder url="file://$MODULE_DIR$/kplayerTests/kplayerTests.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayerTests/Info.plist" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Podfile" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/detail/VideoPlayerController.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/detail/HeaderCell.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/detail/ItemCell.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/detail/DetailViewController.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/Info.plist" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/AppDelegate.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/Images.xcassets" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/Kirschkeks-256x256.png" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/photo/MediaPhotoController.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/master/MasterViewController.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/util/NetData.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/util/ImageLoadOperation.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/util/DataLoadOperation.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/util/HanekeFetchOperation.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/util/UIImageExtension.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/util/ViewControllerExtensions.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/util/LayoutTools.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/util/UploadOperation.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/util/DataLoadOperation.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/util/NetworkHelper.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/util/ViewControllerExtensions.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/util/stringutil.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/util/NetworkHelper.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/util/UploadOperation.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/core/NetworkManager.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/core/MediaItem.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/core/ItemModel.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/kplayer.xcdatamodeld/kplayer.xcdatamodel" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/master/MasterViewController.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/detail/VideoPlayerController.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/detail/HeaderCell.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/detail/ItemCell.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/detail/DetailViewController.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/Base.lproj/LaunchScreen.xib" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kplayer/Base.lproj/Main.storyboard" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/Download.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/MultipartFormData.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/ResponseSerialization.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/ServerTrustPolicy.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/ParameterEncoding.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/ServerTrustPolicy.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/ResponseSerialization.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/Request.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/Download.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/Manager.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/Error.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/Alamofire.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/Request.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/Stream.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/Upload.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/Validation.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Alamofire/Source/Result.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/DiskFetcher.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/String+Haneke.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/Log.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/CryptoSwiftMD5.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/UIImageView+Haneke.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/NSHTTPURLResponse+Haneke.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/NetworkFetcher.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/Data.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/Format.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/UIButton+Haneke.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/Haneke.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/UIImageView+Haneke.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/CryptoSwiftMD5.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/DiskCache.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/UIView+Haneke.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/UIImage+Haneke.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/Log.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/NSFileManager+Haneke.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/Fetcher.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/CGSize+Swift.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/NSHTTPURLResponse+Haneke.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/Haneke.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/Fetch.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/HanekeSwift/Haneke/Cache.swift" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Cent/Cent/Cent/Array.swift" isTestSource="false" />
@ -96,8 +96,8 @@
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/Nimbus/Nimbus.modulemap" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/Nimbus/Nimbus-umbrella.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/ALMoviePlayerController/ALMoviePlayerController-dummy.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/ALMoviePlayerController/ALMoviePlayerController.modulemap" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/ALMoviePlayerController/ALMoviePlayerController-prefix.pch" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/ALMoviePlayerController/ALMoviePlayerController.modulemap" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/ALMoviePlayerController/Info.plist" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/ALMoviePlayerController/ALMoviePlayerController.xcconfig" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/ALMoviePlayerController/ALMoviePlayerController-umbrella.h" isTestSource="false" />
@ -107,7 +107,7 @@
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/Dollar/Info.plist" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/Dollar/Dollar.xcconfig" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/Dollar/Dollar-umbrella.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/Pods/Pods-acknowledgements.markdown" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/Pods/Pods-acknowledgements.plist" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/Pods/Pods.modulemap" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/Pods/Pods-dummy.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/Pods/Pods.debug.xcconfig" isTestSource="false" />
@ -115,30 +115,29 @@
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/Pods/Info.plist" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/Pods/Pods-umbrella.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/Pods/Pods-frameworks.sh" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/Pods/Pods-acknowledgements.markdown" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/Pods/Pods-resources.sh" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Target Support Files/Pods/Pods-acknowledgements.plist" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIDebuggingTools.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NISnapshotRotation.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIButtonUtilities.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIDebuggingTools.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/UIResponder+NimbusCore.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIFoundationMethods.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIDeviceOrientation.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIDeviceOrientation.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NimbusCore.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIFoundationMethods.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIInMemoryCache.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIRuntimeClassModifications.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIPaths.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIInMemoryCache.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIRuntimeClassModifications.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NISnapshotRotation.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIButtonUtilities.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIImageUtilities.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NINonEmptyCollectionTesting.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIActions.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NISnapshotRotation.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIButtonUtilities.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NINonEmptyCollectionTesting.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIActions.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIDeviceOrientation.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIState.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIActions.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NICommonMetrics.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIActions+Subclassing.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIDeviceOrientation.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NINonEmptyCollectionTesting.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIState.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIError.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NICommonMetrics.h" isTestSource="false" />
@ -146,22 +145,23 @@
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIPreprocessorMacros.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIError.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/UIResponder+NimbusCore.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIPaths.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIViewRecycler.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NISDKAvailability.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/UIResponder+NimbusCore.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIOperations.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIActions+Subclassing.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIOperations.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIViewRecycler.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NISDKAvailability.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIOperations+Subclassing.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NINonRetainingCollections.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NINonRetainingCollections.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIOperations.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NINetworkActivity.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIPaths.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NINonRetainingCollections.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIInMemoryCache.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIImageUtilities.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIOperations.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIPaths.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NimbusCore+Additions.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIImageUtilities.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NIButtonUtilities.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/core/src/NISnapshotRotation.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/pagingscrollview/src/NIPagingScrollView.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/pagingscrollview/src/NIPagingScrollViewPage.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/pagingscrollview/src/NIPagingScrollView.h" isTestSource="false" />
@ -182,12 +182,12 @@
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/photos/src/NIPhotoScrollViewDelegate.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/Nimbus/src/photos/src/NIPhotoScrubberView.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/ALMoviePlayerController/ALMoviePlayerController/ALMoviePlayerController.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/ALMoviePlayerController/ALMoviePlayerController/ALAirplayView.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/ALMoviePlayerController/ALMoviePlayerController/ALMoviePlayerControls.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/ALMoviePlayerController/ALMoviePlayerController/ALButton.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/ALMoviePlayerController/ALMoviePlayerController/ALAirplayView.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/ALMoviePlayerController/ALMoviePlayerController/ALMoviePlayerController.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/ALMoviePlayerController/ALMoviePlayerController/ALAirplayView.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/ALMoviePlayerController/ALMoviePlayerController/ALButton.h" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/ALMoviePlayerController/ALMoviePlayerController/ALMoviePlayerControls.m" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/ALMoviePlayerController/ALMoviePlayerController/Images/moviePause.png" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/ALMoviePlayerController/ALMoviePlayerController/Images/movieBackward.png" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Pods/ALMoviePlayerController/ALMoviePlayerController/Images/movieForward.png" isTestSource="false" />

134
kplayer/photo/MediaPhotoController.swift

@ -21,10 +21,12 @@ class MediaPhotoController: NIToolbarPhotoViewController, NIPhotoAlbumScrollView
var timer: NSTimer?
var currentIndex = 80
lazy var backgroundOperationQueue: NSOperationQueue = {
var queue = NSOperationQueue()
queue.name = "Thumb queue"
queue.maxConcurrentOperationCount = 1
queue.maxConcurrentOperationCount = 10
return queue
}()
@ -42,7 +44,7 @@ class MediaPhotoController: NIToolbarPhotoViewController, NIPhotoAlbumScrollView
override func viewDidLoad() {
super.viewDidLoad()
imageCache.totalCostLimit = 1024 * 1024 * 50
imageCache.totalCostLimit = 1024 * 1024 * 1024
let backButton = UIBarButtonItem(barButtonSystemItem: .Cancel, target: self, action: Selector("back"))
let slideButton = UIBarButtonItem(barButtonSystemItem: .FastForward, target: self, action: Selector("slideShow"))
@ -57,36 +59,118 @@ class MediaPhotoController: NIToolbarPhotoViewController, NIPhotoAlbumScrollView
self.photoAlbumView.reloadData();
self.photoScrubberView.reloadData();
var j = 0;
preload(0, count: 40)
preload(40, count: 40)
}
for i in items {
if j++ > 1000 {
break
}
func preload(start: Int, count: Int) {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH:mm:ss.SSSZ"
let u1 = NSURL(string: i.thumbUrlAbsolute)
var preview = ""
let end = start + count
for var k = start; k < end; k++ {
let tu = items[k].thumbUrl!.stringByReplacingOccurrencesOfString("?preview=true", withString: "")
preview += "\(tu);"
}
if let URL = u1 {
preview = preview.stringByAddingPercentEscapesUsingEncoding(NSISOLatin1StringEncoding)!
let u2 = "\(NetworkManager.sharedInstance.baseurl)/service/preload?preview=\(preview)"
let u3 = NSURL(string: u2)
if let URL = u3 {
let time = dateFormatter.stringFromDate(NSDate())
print("\(time) preload image \(u2)")
let op1 = DataLoadOperation(imageURL: URL, succeeder: {
da in
if da.length > 0 {
let d = da as! NSData
let bytes = Array(UnsafeBufferPointer(start: UnsafePointer<UInt8>(d.bytes), count: d.length))
let string1 = NSString(data: d, encoding: NSUTF8StringEncoding)
print(string1)
var index = 0
let fHi = (Int(bytes[index++]) << 24)+(Int(bytes[index++]) << 16)
let f = fHi + (Int(bytes[index++]) << 8) + Int(bytes[index++])
// let f = (bytes[index++] << 24)+(bytes[index++] << 16)+(bytes[index++] << 8) + bytes[index++]
let time = dateFormatter.stringFromDate(NSDate())
print("\(time) start \(start) count \(f) size \(d.length)")
var rest = self.items.count - self.currentIndex
if rest > 40 {
rest = 40
}
let op1 = DataLoadOperation(imageURL: URL, succeeder: {
d in
if d.length > 0 {
if let img = UIImage(data: d) {
let imageRef = img.CGImage;
let bytesPerPixel = CGImageGetBitsPerPixel(imageRef) / 8;
let cost = CGImageGetWidth(imageRef) * CGImageGetHeight(imageRef) * bytesPerPixel;
self.total += d.length
print("preload image loaded \(i.thumbUrlAbsolute) cost \(cost) total\(self.total)")
self.imageCache.setObject(img, forKey: i.thumbUrlAbsolute, cost: d.length)
if rest > 0 {
self.preload(self.currentIndex, count: rest)
self.currentIndex += rest
}
for var bild = start; bild < end; bild++ {
let sizeHi = (Int(bytes[index++]) << 24)+(Int(bytes[index++]) << 16)
let size = (Int(bytes[index++]) << 8) + Int(bytes[index++]) + sizeHi
if size > 0 {
// var buf = //UnsafeMutablePointer<UInt8>(&bytes[index])
let part = d.subdataWithRange(NSMakeRange(index, size))
if let img = UIImage(data: part) {
let imageRef = img.CGImage;
let bytesPerPixel = CGImageGetBitsPerPixel(imageRef) / 8;
let cost = CGImageGetWidth(imageRef) * CGImageGetHeight(imageRef) * bytesPerPixel;
self.total += d.length
let i = self.items[bild]
// print("\(time) preload combi image loaded \(i.name) cost \(cost) total\(self.total)")
self.imageCache.setObject(img, forKey: i.thumbUrlAbsolute, cost: size)
}
}
index += size
}
}, index: j)
op1.qualityOfService = NSQualityOfService.Background
backgroundOperationQueue.addOperation(op1)
} else {
print("## Invalid URL: \(i.thumbUrlAbsolute)")
}
}
}, index: start)
op1.qualityOfService = NSQualityOfService.Background
backgroundOperationQueue.addOperation(op1)
} else {
print("## Invalid URL: \(u2)")
}
// for i in items {
// if j++ > 1000 {
// break
// }
//
// let u1 = NSURL(string: i.thumbUrlAbsolute)
//
// if let URL = u1 {
// let time = dateFormatter.stringFromDate(NSDate())
// print("\(time) preload image \(i.name)")
//
// let op1 = DataLoadOperation(imageURL: URL, succeeder: {
// d in
// if d.length > 0 {
// if let img = UIImage(data: d) {
// let imageRef = img.CGImage;
// let bytesPerPixel = CGImageGetBitsPerPixel(imageRef) / 8;
// let cost = CGImageGetWidth(imageRef) * CGImageGetHeight(imageRef) * bytesPerPixel;
// self.total += d.length
//
// let time = dateFormatter.stringFromDate(NSDate())
// print("\(time) preload image loaded \(i.name) cost \(cost) total\(self.total)")
// self.imageCache.setObject(img, forKey: i.thumbUrlAbsolute, cost: d.length)
// }
// }
// }, index: j)
// op1.qualityOfService = NSQualityOfService.Background
// backgroundOperationQueue.addOperation(op1)
// } else {
// print("## Invalid URL: \(i.thumbUrlAbsolute)")
// }
// }
}
override func didReceiveMemoryWarning() {

41
kplayer/util/DataLoadOperation.swift

@ -7,6 +7,7 @@ import Foundation
import Alamofire
import Darwin
class DataLoadOperation: NSOperation {
internal typealias Succeeder = (NSData) -> ()
@ -27,11 +28,43 @@ class DataLoadOperation: NSOperation {
if self.cancelled {
return
}
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH:mm:ss.SSS"
var configuration = NSURLSessionConfiguration.defaultSessionConfiguration(); // backgroundSessionConfigurationWithIdentifier("imageLoad");
configuration.HTTPMaximumConnectionsPerHost = 100;
var backgroundSession = NSURLSession(configuration: configuration, delegate: nil, delegateQueue: nil);
var url = NSURLRequest(URL: imageURL);
var downloadTask = backgroundSession.dataTaskWithRequest(url, completionHandler: {
data,response,error in
if error == nil {
if let d = data {
// let time = dateFormatter.stringFromDate(NSDate())
// print("\(time) preloaded image \(self.imageURL)")
dispatch_async(dispatch_get_main_queue(), {
() -> Void in
self.succeeder(d)
})
}
}
else {
print(error!)
}
})
let time = dateFormatter.stringFromDate(NSDate())
// print("\(time) preload image \(imageURL)")
downloadTask.resume();
Alamofire.request(.GET, imageURL).response {
(_, _, d: AnyObject?, _) in
self.succeeder(d as! NSData)
};
// Alamofire.request(.GET, imageURL).response {
// (_, _, d: AnyObject?, _) in
// self.succeeder(d as! NSData)
// };
}
override func cancel() {

Loading…
Cancel
Save