1
我知道blank.caf
音頻文件的URL,我在我的iPhone應用程序中創建(錄製)。我很關心它的大小,並且想把它的大小輸出到日誌中。我找不到這樣做的方法。我也很有興趣找出音頻文件的持續時間。如何在日誌中輸出CAF文件大小?
我知道blank.caf
音頻文件的URL,我在我的iPhone應用程序中創建(錄製)。我很關心它的大小,並且想把它的大小輸出到日誌中。我找不到這樣做的方法。我也很有興趣找出音頻文件的持續時間。如何在日誌中輸出CAF文件大小?
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
}
}
以字節爲:
let attributes = NSFileManager.defaultManager()
.attributesOfItemAtPath(filePath, error: nil) as NSDictionary?
let fileSize : UInt64 = attributes!.fileSize()
你能分享一些您使用的是創建該文件的代碼?如果您使用Core Audio與AVFoundation,則API略有不同。 – dpassage