123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- //
- // AudioTool.swift
- // ContactPoster
- //
- // Created by TSYH on 2024/1/24.
- //
- import AVFoundation
- typealias AudioCompletionHandler = (URL?, String?) -> Void
- class AudioTool {
- /// 创建用于分享库乐队的band文件
- func convertToBand(from fileURL: URL, to filePath: String,
- bandFileURL: URL,
- completion: ((URL?) -> Void)?) {
-
- let copyBandURL = URL(fileURLWithPath: filePath).deletingPathExtension().appendingPathExtension("band")
- // 步骤3:复制band文件
- try? FileManager.default.copyItem(atPath: bandFileURL.path, toPath: copyBandURL.path)
-
- guard FileManager.default.fileExists(atPath: copyBandURL.path) else {
- // 复制失败
- completion?(nil)
- return
- }
-
- // 步骤4:格式转换为aiff
- let converter = ExtAudioConverter()
- converter.inputFile = fileURL.path
- converter.outputFile = copyBandURL.path.appending("/Media/ringtone.aiff")
- converter.outputFileType = kAudioFileAIFFType
- let success = converter.convert()
-
- guard success,
- FileManager.default.fileExists(atPath: copyBandURL.path) else {
- // 转换失败
- completion?(nil)
- return
- }
-
- completion?(copyBandURL)
- debugPrint("===bandPath: \(copyBandURL)")
- }
-
- }
|