2015-05-12 6 views
1

Я знаю URL-адрес blank.caf аудиофайла, что я создаю камеру (запись) в приложении для iPhone. Я обеспокоен его размером и хотел бы вывести его размер в журнал. Я не мог найти способ сделать это. Мне также интересно узнать продолжительность аудиофайла.Как вывести размер файла CAF в журнал?

+0

Можете ли вы поделиться некоторыми из кода, который вы используете для создания файла? API-интерфейсы немного отличаются, если вы используете Core Audio vs AVFoundation. – dpassage

ответ

2
import UIKit 
import AVFoundation 
extension NSURL { 
    var movieDuration: Double { 
     if checkResourceIsReachableAndReturnError(nil) { 
      return Double(CMTimeGetSeconds(AVURLAsset(URL: self, options: nil).duration)) 
     } 
     return 0 
    } 

} 
extension String { 
    var fileAttributes:NSDictionary { 
     if NSFileManager.defaultManager().fileExistsAtPath(self){ 
      return NSFileManager.defaultManager().attributesOfItemAtPath(self, error: nil)! as NSDictionary 
     } 
     return[:] 
    } 
    var fileSize:Int { 
     if NSFileManager.defaultManager().fileExistsAtPath(self){ 
      return Int(fileAttributes.fileSize()) 
     } 
     return 0 
    } 
    var fileSizeKB:String { 
     let styler = NSByteCountFormatter() 
     styler.allowedUnits = NSByteCountFormatterUnits.UseKB 
     styler.countStyle = NSByteCountFormatterCountStyle.File 
     return styler.stringFromByteCount(Int64(fileSize)) 
    } 
} 

Тестирование

if let audioURL = NSURL(string:"http://freetone.org/ring/stan/iPhone_5-Alarm.mp3") { 
    let documentsDirectoryURL = NSFileManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first as! NSURL 
    let destinationURL = documentsDirectoryURL.URLByAppendingPathComponent(audioURL.lastPathComponent!) 
    if let audioData = NSData(contentsOfURL: audioURL) { 
     audioData.writeToURL(destinationURL, atomically: true) 
     destinationURL.path!.fileSizeKB // 182KB 
     destinationURL.movieDuration  // 22.704s 
    } 
} 
0

В байтах:

let attributes = NSFileManager.defaultManager() 
    .attributesOfItemAtPath(filePath, error: nil) as NSDictionary? 
let fileSize : UInt64 = attributes!.fileSize() 

 Смежные вопросы

  • Нет связанных вопросов^_^