1.添加机型事件统计;
2.修复从相册选择文件至转码页面点击转码会崩溃的问题:主要是从那个地址加载文件估计有问题
This commit is contained in:
parent
a9dca3fd1e
commit
828186049b
@ -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"])
|
||||
|
||||
@ -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操作后面的转码,在vw那里会crash
|
||||
// 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("未知的媒体类型")
|
||||
|
||||
@ -231,5 +231,113 @@ public extension UIDevice {
|
||||
default: return identifier
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user