簡體   English   中英

遞增錄制的音頻文件名

[英]Increment Recorded Audio File Name

Xcode 7.3.1,Swift 2

我的視圖控制器中有以下代碼行,用於設置錄制的音頻的文件名。 盡管每個文件都有一個唯一的名稱,但我真的希望它簡短一些,但要唯一。 如果文件名已經存在,我想增加一個。

我不確定使用適當的術語來正確地查找它,因此我希望你們中的一個可以指出正確的方向。

// Set the default audio file
    let audioFileURL = directoryURL.URLByAppendingPathComponent("PWAC_" + NSUUID().UUIDString + ".m4a")

repeat循環將執行以下操作:

var index = 0
var audioFileURL: NSURL!

repeat {
    index += 1
    audioFileURL = directoryURL.URLByAppendingPathComponent("PWAC_\(index).m4a")
} while NSFileManager.defaultManager().fileExistsAtPath(audioFileURL.path!)

您可以使用NSDefault保持運行ID。 即使應用終止,它也永久存儲在您的應用中。

例如,在這里,我使用帶有靜態函數的類:

class FileUtil {

    let key = "runningId" 

    static func getRunningID() {
        let prefs = NSUserDefaults.standardUserDefaults()
        // set initial value if first time

        if var runningid = prefs.valueForKey(key) as? Int{
           print("current id: \(runningid)")
           // increase by 1 and return
           runningid += 1
           // dont forget to save back after increment
           prefs.setInteger(runningid, forKey: key)

           return runningid;
        }else{         
           // not set yet, then set the init value
           prefs.setInteger(1, forKey: key)          
        }
    }
}

所以在您的控制器中可以簡單地調用

 let audioFileURL = directoryURL.URLByAppendingPathComponent("PWAC_" + FileUtil. getRunningID() + ".m4a")

您的每個音頻文件每次都有一個唯一的名稱和日期字符串。

let date = NSDate()

let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = .MediumStyle
dateFormatter.dateFormat = "yyyy-MM-ddHHmmssSSS"
let string = dateFormatter.stringFromDate(date)

audioFileURL = directoryURL.URLByAppendingPathComponent("PWAC_\(string).m4a")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM