1.添加机型事件统计;

2.修复从相册选择文件至转码页面点击转码会崩溃的问题:主要是从那个地址加载文件估计有问题
This commit is contained in:
bluesea 2024-05-21 18:07:52 +08:00
parent a9dca3fd1e
commit 828186049b
3 changed files with 143 additions and 8 deletions

View File

@ -21,6 +21,7 @@ import FirebaseCore
import AVFoundation
import FacebookCore
import FirebaseRemoteConfig
@main
@ -42,6 +43,14 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
print("err: set audiosession:\(error)")
}
if let modelName = UIDevice.current.shouldUploadphoneModel {
Analytics.logEvent("user_suitable", parameters: ["device":modelName])
}
if let isIphone15 = UIDevice.current.isIphone15 {
Analytics.logEvent("user_15p", parameters: ["device":isIphone15])
}
SVProgressHUD.setDefaultStyle(.dark)
Analytics.logEvent("user_launch", parameters: ["type":"new"])

View File

@ -530,6 +530,25 @@ extension CCHomeController: TZImagePickerControllerDelegate,UINavigationControll
self.navigationController?.pushViewController(vc, animated: true)
}
private func getVideoURL(from asset: PHAsset, completion: @escaping (URL,AVURLAsset) -> Void) {
if asset.mediaType == .video {
let requestOptions = PHVideoRequestOptions()
requestOptions.isNetworkAccessAllowed = true
//
PHImageManager.default().requestAVAsset(forVideo: asset, options: requestOptions) { (avAsset, _, _) in
if let avAsset = avAsset as? AVURLAsset {
let mediaURL = avAsset.url
DispatchQueue.main.async {
completion(mediaURL,avAsset)
}
}
}
} else {
}
}
func gotoVideoTransformVC(url:URL?,asset:PHAsset?) {
let vc = VRVideoTransformController()
@ -596,15 +615,14 @@ extension CCHomeController: TZImagePickerControllerDelegate,UINavigationControll
let videoURL = info[.mediaURL] as? URL
print("选择视频 Selected video URL: \(String(describing: videoURL))")
gotoVideoTransformVC(url: videoURL,asset: info[.phAsset] as? PHAsset)
if let pha = (info[.phAsset] as? PHAsset) {
getVideoURL(from: pha) {[weak self] url, avasset in
self?.gotoVideoTransformVC(url: url,asset: pha)
}
}
//,videoURL,vwcrash
// gotoVideoTransformVC(url: videoURL,asset: info[.phAsset] as? PHAsset)
// sourceVideoURL = videoURL
// heroAsset1 = AVAsset(url: sourceVideoURL!)
// heroAsset = heroAsset1
// if(!isSpatialVideo(asset: heroAsset!)){
// showTextAlert(title: "", message: "")
// }
// play()
break
default:
print("未知的媒体类型")

View File

@ -232,4 +232,112 @@ public extension UIDevice {
}
}
var shouldUploadphoneModel: String? {
var systemInfo = utsname()
uname(&systemInfo)
let machineMirror = Mirror(reflecting: systemInfo.machine)
let identifier = machineMirror.children.reduce("") { identifier, element in
guard let value = element.value as? Int8 , value != 0 else { return identifier }
return identifier + String(UnicodeScalar(UInt8(value)))
}
switch identifier {
case "iPod5,1": return nil//"iPod Touch 5"
case "iPod7,1": return nil//"iPod Touch 6"
case "iPhone3,1", "iPhone3,2", "iPhone3,3": return nil//"iPhone 4"
case "iPhone4,1": return nil//"iPhone 4s"
case "iPhone5,1", "iPhone5,2": return nil//"iPhone 5"
case "iPhone5,3", "iPhone5,4": return nil//"iPhone 5c"
case "iPhone6,1", "iPhone6,2": return nil//"iPhone 5s"
case "iPhone7,2": return nil//"iPhone 6"
case "iPhone7,1": return nil//"iPhone 6 Plus"
case "iPhone8,1": return nil//"iPhone 6s"
case "iPhone8,2": return nil//"iPhone 6s Plus"
case "iPhone8,4": return nil//"iPhone SE (1st generation)"
case "iPhone9,1", "iPhone9,3": return nil//"iPhone 7"
case "iPhone9,2", "iPhone9,4": return nil//"iPhone 7 Plus"
case "iPhone10,1", "iPhone10,4": return nil//"iPhone 8"
case "iPhone10,5", "iPhone10,2": return nil//"iPhone 8 Plus"
case "iPhone10,3", "iPhone10,6": return nil//"iPhone X"
case "iPhone11,2": return "iPhone XS"
case "iPhone11,4", "iPhone11,6": return "iPhone XS MAX"
case "iPhone11,8": return nil//"iPhone XR"
case "iPhone12,1": return "iPhone 11"
case "iPhone12,3": return "iPhone 11 pro"
case "iPhone12,5": return "iPhone 11 Pro Max"
case "iPhone12,8": return nil//"iPhone SE (2nd generation)"
case "iPhone13,1": return "iPhone 12 mini"
case "iPhone13,2": return "iPhone 12"
case "iPhone13,3": return "iPhone 12 Pro"
case "iPhone13,4": return "iPhone 12 Pro Max"
case "iPhone14,4": return nil//"iPhone 13 mini"
case "iPhone14,5": return nil//"iPhone 13"
case "iPhone14,2": return "iPhone 13 Pro"
case "iPhone14,3": return "iPhone 13 Pro Max"
case "iPhone14,6": return nil//"iPhone SE (3rd generation)"
case "iPhone14,7": return nil//"iPhone 14"
case "iPhone14,8": return nil//"iPhone 14 Plus"
case "iPhone15,2": return "iPhone 14 Pro"
case "iPhone15,3": return "iPhone 14 Pro Max"
case "iPhone15,4": return nil//"iPhone 15"
case "iPhone15,5": return nil//"iPhone 15 Plus"
case "iPhone16,1": return "iPhone 15 Pro"
case "iPhone16,2": return "iPhone 15 Pro Max"
case "iPad2,1", "iPad2,2", "iPad2,3", "iPad2,4":return nil//"iPad 2"
case "iPad3,1", "iPad3,2", "iPad3,3": return nil//"iPad 3"
case "iPad3,4", "iPad3,5", "iPad3,6": return nil//"iPad 4"
case "iPad6,11", "iPad6,12": return nil//"iPad 5"
case "iPad7,5", "iPad7,6": return nil//"iPad 6"
case "iPad7,11", "iPad7,12": return nil//"iPad 7"
case "iPad11,6", "iPad11,7": return nil//"iPad 8"
case "iPad12,1", "iPad12,2": return nil//"iPad 9"
case "iPad4,1", "iPad4,2", "iPad4,3": return nil//"iPad Air"
case "iPad5,3", "iPad5,4": return nil//"iPad Air 2"
case "iPad11,3", "iPad11,4": return nil//"iPad Air 3"
case "iPad13,1", "iPad13,2": return nil//"iPad Air 4"
case "iPad13,16", "iPad13,17": return nil//"iPad Air 5"
case "iPad2,5", "iPad2,6", "iPad2,7": return nil//"iPad Mini"
case "iPad4,4", "iPad4,5", "iPad4,6": return nil//"iPad Mini 2"
case "iPad4,7", "iPad4,8", "iPad4,9": return nil//"iPad Mini 3"
case "iPad5,1", "iPad5,2": return nil//"iPad Mini 4"
case "iPad11,1", "iPad11,2": return nil//"iPad Mini 5"
case "iPad14,1", "iPad14,2": return nil//"iPad Mini 6"
case "iPad6,7", "iPad6,8", "iPad6,3", "iPad6,4", "iPad7,1", "iPad7,2", "iPad7,3", "iPad7,4", "iPad8,1", "iPad8,2", "iPad8,3", "iPad8,4", "iPad8,5", "iPad8,6", "iPad8,7", "iPad8,8", "iPad8,9", "iPad8,10", "iPad8,11", "iPad8,12": return nil
case "AppleTV5,3": return nil
case "i386", "x86_64": return nil
default: return nil
}
}
var isIphone15: String? {
var systemInfo = utsname()
uname(&systemInfo)
let machineMirror = Mirror(reflecting: systemInfo.machine)
let identifier = machineMirror.children.reduce("") { identifier, element in
guard let value = element.value as? Int8 , value != 0 else { return identifier }
return identifier + String(UnicodeScalar(UInt8(value)))
}
switch identifier {
case "iPhone16,1": return "iPhone 15 Pro"
case "iPhone16,2": return "iPhone 15 Pro Max"
default: return nil
}
}
}