添加MenuVC、feedback页面

This commit is contained in:
bluesea 2024-04-12 13:42:10 +08:00
parent 418ad2db05
commit db9e06d91c
26 changed files with 589 additions and 11 deletions

View File

@ -25,6 +25,10 @@
0096624A2BB3B45200FCA65F /* ExternalSceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009662492BB3B45200FCA65F /* ExternalSceneDelegate.swift */; };
0096624D2BB3BA3B00FCA65F /* ZZHExternalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0096624C2BB3BA3B00FCA65F /* ZZHExternalViewController.swift */; };
0096625A2BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009662592BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift */; };
009DFB032BC63AF0007B56E8 /* CoreImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 009DFB022BC63AF0007B56E8 /* CoreImage.framework */; };
009DFB0E2BC8CFA2007B56E8 /* FeedbackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009DFB0D2BC8CFA2007B56E8 /* FeedbackView.swift */; };
009DFB112BC8E2E9007B56E8 /* MenuVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009DFB102BC8E2E9007B56E8 /* MenuVC.swift */; };
009DFB132BC8EA90007B56E8 /* MenuVCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009DFB122BC8EA90007B56E8 /* MenuVCCell.swift */; };
00B946252B67B7DE00DA668F /* CCSpatialPlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00B946242B67B7DE00DA668F /* CCSpatialPlayView.swift */; };
00C665732BAA81F900C309C3 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 00C665722BAA81F900C309C3 /* GoogleService-Info.plist */; };
00C665792BAA94EA00C309C3 /* CopyCrashHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00C665772BAA941E00C309C3 /* CopyCrashHandler.swift */; };
@ -126,6 +130,10 @@
009662492BB3B45200FCA65F /* ExternalSceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExternalSceneDelegate.swift; sourceTree = "<group>"; };
0096624C2BB3BA3B00FCA65F /* ZZHExternalViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZZHExternalViewController.swift; sourceTree = "<group>"; };
009662592BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCSpatialVideoDisplayForVideoTask.swift; sourceTree = "<group>"; };
009DFB022BC63AF0007B56E8 /* CoreImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreImage.framework; path = System/Library/Frameworks/CoreImage.framework; sourceTree = SDKROOT; };
009DFB0D2BC8CFA2007B56E8 /* FeedbackView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbackView.swift; sourceTree = "<group>"; };
009DFB102BC8E2E9007B56E8 /* MenuVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuVC.swift; sourceTree = "<group>"; };
009DFB122BC8EA90007B56E8 /* MenuVCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuVCCell.swift; sourceTree = "<group>"; };
00B946222B67B26D00DA668F /* ddd_video.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = ddd_video.mp4; sourceTree = "<group>"; };
00B946242B67B7DE00DA668F /* CCSpatialPlayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCSpatialPlayView.swift; sourceTree = "<group>"; };
00C665722BAA81F900C309C3 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
@ -221,6 +229,7 @@
files = (
AF478B032B577D51005C35A5 /* AVFoundation.framework in Frameworks */,
00EB2D052BA2D59000924D84 /* MessageUI.framework in Frameworks */,
009DFB032BC63AF0007B56E8 /* CoreImage.framework in Frameworks */,
1E277B76988DF1691E8E5A49 /* Pods_SwiftProject.framework in Frameworks */,
006B61D32BBAA938003FCB49 /* StoreKit.framework in Frameworks */,
AF2120D42B4E99FA00400B7F /* MobileCoreServices.framework in Frameworks */,
@ -295,6 +304,23 @@
path = CCSpatialPhotoDisplayController;
sourceTree = "<group>";
};
009DFB0C2BC8CEC7007B56E8 /* FeedbackView */ = {
isa = PBXGroup;
children = (
009DFB0D2BC8CFA2007B56E8 /* FeedbackView.swift */,
);
path = FeedbackView;
sourceTree = "<group>";
};
009DFB0F2BC8E2D1007B56E8 /* MenuVC */ = {
isa = PBXGroup;
children = (
009DFB102BC8E2E9007B56E8 /* MenuVC.swift */,
009DFB122BC8EA90007B56E8 /* MenuVCCell.swift */,
);
path = MenuVC;
sourceTree = "<group>";
};
1E02C9302B89909000DD3143 /* DeviceOperation */ = {
isa = PBXGroup;
children = (
@ -401,6 +427,7 @@
4D8F3A411661D600CD07B39B /* Frameworks */ = {
isa = PBXGroup;
children = (
009DFB022BC63AF0007B56E8 /* CoreImage.framework */,
006B61D22BBAA938003FCB49 /* StoreKit.framework */,
009661FB2BADB20D00FCA65F /* CoreMotion.framework */,
009661F92BAD876200FCA65F /* PhotosUI.framework */,
@ -538,6 +565,7 @@
AF2120A72B4E83B000400B7F /* Controller */ = {
isa = PBXGroup;
children = (
009DFB0F2BC8E2D1007B56E8 /* MenuVC */,
006B61C82BBA4AF2003FCB49 /* MembershipVC */,
1EEF683C2B8D076B00B953F7 /* VRPreview */,
1E39459C2B83837900D0F5CA /* RecordingVideo */,
@ -554,6 +582,7 @@
AF2120A82B4E83B000400B7F /* View */ = {
isa = PBXGroup;
children = (
009DFB0C2BC8CEC7007B56E8 /* FeedbackView */,
006B61DA2BBCFA54003FCB49 /* CustomSheetController */,
1E1EA28A2B9326DB00A5D5D2 /* CCSpatialDisplayTypeView */,
1EFAF0B42B8AF003002A1773 /* Album */,
@ -758,6 +787,7 @@
1E1EA2962B936C9600A5D5D2 /* VideoConvertor2.swift in Sources */,
AF2120CA2B4E95DA00400B7F /* UITableView+Add.swift in Sources */,
1EFAF0BA2B8AF5EF002A1773 /* UIView+CCExtension.swift in Sources */,
009DFB0E2BC8CFA2007B56E8 /* FeedbackView.swift in Sources */,
AF2120C42B4E95DA00400B7F /* UIImage+Add.swift in Sources */,
1EFAF0C02B8B7A59002A1773 /* VRPhotoTransformController.swift in Sources */,
AF21210B2B4EA7FE00400B7F /* CCRequest.swift in Sources */,
@ -772,6 +802,7 @@
1EFB8C6C2B88D52200C72119 /* CCCommonFile.swift in Sources */,
1EE5C5FA2B8F97BF00EDFC2F /* SpatialVideoWriter.swift in Sources */,
1EFB8C762B88DD1200C72119 /* CCTransformProgressPopView.swift in Sources */,
009DFB112BC8E2E9007B56E8 /* MenuVC.swift in Sources */,
AF2121042B4EA61A00400B7F /* CCMineView.swift in Sources */,
AF21210D2B4EA86700400B7F /* RootData.swift in Sources */,
AF2121092B4EA7E200400B7F /* CCRequestDefine.swift in Sources */,
@ -795,6 +826,7 @@
0096624D2BB3BA3B00FCA65F /* ZZHExternalViewController.swift in Sources */,
00D33BFA2B9AB21A00604A44 /* ZZHAVExtension.swift in Sources */,
009661F82BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift in Sources */,
009DFB132BC8EA90007B56E8 /* MenuVCCell.swift in Sources */,
AF2120E02B4E9C8000400B7F /* Timer+Add.swift in Sources */,
006B61C72BBA499D003FCB49 /* SKUPay.swift in Sources */,
AF2120DE2B4E9C3500400B7F /* AppDelegate+Add.swift in Sources */,

View File

@ -14,8 +14,8 @@
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "550"
endingLineNumber = "550"
startingLineNumber = "555"
endingLineNumber = "555"
landmarkName = "imagePickerController(_:didFinishPickingMediaWithInfo:)"
landmarkType = "7">
</BreakpointContent>
@ -30,8 +30,8 @@
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "542"
endingLineNumber = "542"
startingLineNumber = "547"
endingLineNumber = "547"
landmarkName = "CCHomeController"
landmarkType = "21">
</BreakpointContent>
@ -94,8 +94,8 @@
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "506"
endingLineNumber = "506"
startingLineNumber = "511"
endingLineNumber = "511"
landmarkName = "gotoVideoTransformVC(url:asset:)"
landmarkType = "7">
</BreakpointContent>
@ -467,8 +467,8 @@
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayForVideoTask.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "47"
endingLineNumber = "47"
startingLineNumber = "52"
endingLineNumber = "52"
landmarkName = "convertFrame(request:)"
landmarkType = "7">
<Locations>
@ -515,8 +515,8 @@
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayForVideoTask.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "52"
endingLineNumber = "52"
startingLineNumber = "57"
endingLineNumber = "57"
landmarkName = "convertFrame(request:)"
landmarkType = "7">
<Locations>
@ -631,6 +631,70 @@
endingLineNumber = "551"
landmarkName = "displayUpdate(caDisplayLink:)"
landmarkType = "7">
<Locations>
<Location
uuid = "BB183D45-3193-4FC7-92DB-275D529A4AE6 - bc6a78627bfebfd5"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialVideoDisplayController.displayUpdate(caDisplayLink: __C.CADisplayLink) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "531"
endingLineNumber = "531"
offsetFromSymbolStart = "56">
</Location>
<Location
uuid = "BB183D45-3193-4FC7-92DB-275D529A4AE6 - bc6a78627bfebc61"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialVideoDisplayController.displayUpdate(caDisplayLink: __C.CADisplayLink) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "551"
endingLineNumber = "551"
offsetFromSymbolStart = "56">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "9C211AFB-7D3C-4FF9-8941-F85898C8CF92"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/View/FeedbackView/FeedbackView.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "128"
endingLineNumber = "128"
landmarkName = "negativeAction(sender:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "056F3D91-99BC-416B-8689-AD6B924C7739"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/View/FeedbackView/FeedbackView.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "120"
endingLineNumber = "120"
landmarkName = "praiseAction(sender:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>

View File

@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "Group_1597880441.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group_1597880441@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group_1597880441@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "Group_1597880438.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group_1597880438@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group_1597880438@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 776 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "Direction.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Direction@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Direction@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 870 B

View File

@ -133,6 +133,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
centerView()
bottomButton()
}
override func viewDidDisappear(_ animated: Bool) {
@ -375,6 +376,10 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
func addMenu(){
let vc = MenuVC()
self.navigationController?.pushViewController(vc, animated: true)
return
mBackView = UIView(frame: self.view.bounds)
mBackView!.backgroundColor = UIColor.colorWithRGB(_r: 0, _g: 0, _b: 0, alpha: 0.01)

View File

@ -0,0 +1,155 @@
//
// MenuVC.swift
// SwiftProject
//
// Created by aaa on 2024/4/12.
//
import Foundation
import UIKit
import Firebase
class MenuVC: BaseController,UITableViewDelegate,UITableViewDataSource {
static let kMenuVCCell_identifier = "kMenuVCCell_identifier"
var dataSource:[[[String:String]]] {
get {
return [[["image":"icon","title":NSLocalizedString("Share VPCamera", comment: "")],
["image":"icon","title":NSLocalizedString("Feedback", comment: "")]],
[["image":"icon","title":NSLocalizedString("Privacy Policy", comment: "")],
["image":"icon","title":NSLocalizedString("Terms of Service", comment: "")]],
[["image":"icon","title":NSLocalizedString("WeChat", comment: "")],
["image":"icon","title":NSLocalizedString("Tencent QQ", comment: "")],
["image":"icon","title":NSLocalizedString("Telegram", comment: "")],
["image":"icon","title":NSLocalizedString("Share VPCamera", comment: "")]]]
}
}
override func viewDidLoad() {
super.viewDidLoad()
self.configureUI()
// self.configureData()
// {
// "default":[{"icon":"xxxxxx","title":"wecht","url":""},
// {"icon":"xxxxxx","title":"wecht","url":""}
// ],
// "zh":[],
// "en":[]
//
// }
// UIApplication.openURL("tel://")
// "image:d"
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// if UserInfo.sharedInstance.isMemberShip {//
//
// Analytics.logEvent("iap_isvip_pv", parameters: nil)
// }
// else {
// Analytics.logEvent("iap_unvip_pv", parameters: nil)
// }
}
func configureUI() {
self.navLine?.isHidden = true
self.setLeftOneBtnImg(imgStr: "menuvc_backbtn")
self.leftBtn1?.addTarget(self, action: #selector(dismissVC(sender: )), for: .touchUpInside)
self.view.backgroundColor = UIColor(r: 6, g: 5, b: 7, a: 1)
let topView = topView()
self.view.addSubview(topView)
topView.snp.makeConstraints { make in
make.top.equalToSuperview().offset(113)
make.left.right.equalToSuperview()
make.height.equalTo(162)
}
let bottomView = buttomView()
self.view.addSubview(bottomView)
bottomView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.bottom.equalToSuperview().offset(-20)
make.top.equalTo(topView.snp.bottom).offset(0)
}
}
func topView() -> UIView {
let bgView = UIView()
let imageView = UIImageView()
bgView.addSubview(imageView)
imageView.image = UIImage(named: "AppIcon")
imageView.layer.cornerRadius = 10
imageView.layer.masksToBounds = true
imageView.snp.makeConstraints { make in
make.width.height.equalTo(86)
make.centerX.equalToSuperview()
make.top.equalToSuperview().offset(0)
}
let titleLabel = UILabel()
bgView.addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.top.equalTo(imageView.snp.bottom).offset(8)
}
titleLabel.text = "VPCamera"
titleLabel.textColor = .white
titleLabel.font = UIFont(name: "PingFangSC-Medium", size: 16)
let verLabel = UILabel()
bgView.addSubview(verLabel)
verLabel.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.top.equalTo(titleLabel.snp.bottom).offset(4)
}
verLabel.textColor = UIColor(red: 0.78, green: 0.78, blue: 0.8, alpha: 1)
verLabel.font = UIFont(name: "PingFangSC-Medium", size: 14)
verLabel.text = ZZHHelper.getVersion()
return bgView
}
func buttomView() -> UIView {
let bgView = UIView()
let tableView = UITableView(frame: .zero, style: .insetGrouped)
tableView.register(MenuVCCell.classForCoder(), forCellReuseIdentifier: MenuVC.kMenuVCCell_identifier)
bgView.addSubview(tableView)
tableView.snp.makeConstraints { make in
make.left.top.bottom.right.equalToSuperview()
}
tableView.backgroundColor = .red
return bgView
}
@objc func dismissVC(sender:UIButton) {
self.dismiss(animated: true)
}
//MARK: - TableViewDelegate and DataSource
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 0
}
func numberOfSections(in tableView: UITableView) -> Int {
return 3
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: MenuVC.kMenuVCCell_identifier, for: indexPath)
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
55
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
return UIView()
}
}

View File

@ -0,0 +1,40 @@
//
// MenuVCCell.swift
// SwiftProject
//
// Created by aaa on 2024/4/12.
//
import Foundation
import UIKit
class MenuVCCell: UITableViewCell {
var limgView:UIImageView?
var ltitleLabel:UILabel?
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
self.backgroundColor = UIColor(r: 29, g: 29, b: 29, a: 1)
limgView = UIImageView()
self.contentView.addSubview(limgView!)
ltitleLabel = UILabel()
self.contentView.addSubview(ltitleLabel!)
limgView?.snp.makeConstraints({ make in
make.width.height.equalTo(20)
make.centerY.equalToSuperview()
make.left.equalToSuperview().offset(16)
})
ltitleLabel?.snp.makeConstraints {[weak self] make in
make.centerY.equalToSuperview()
make.left.equalTo((self?.limgView!.snp.right)!).offset(12)
}
ltitleLabel!.textColor = UIColor(red: 1, green: 1, blue: 1, alpha: 1)
ltitleLabel!.font = UIFont(name: "PingFangSC-Medium", size: 14)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}

View File

@ -41,6 +41,8 @@ extension CCSpatialVideoDisplayController {
// let tr_All = CMTimeRange(start: compositionTime, duration: .positiveInfinity)
var ciImg:CIImage? = nil
switch self.selectedIndex {
case .monocular2D://2d
@ -147,6 +149,7 @@ extension CCSpatialVideoDisplayController {
]
)
assetOutput?.supportsRandomAccess = true
assetOutput?.alwaysCopiesSampleData = false
assetReader!.timeRange = timeRange
assetReader!.add(assetOutput!)
assetReader!.startReading()

View File

@ -16,8 +16,11 @@ import ImageIO
class PlayByTransferConvertor {
func convertVideo(asset:AVAsset, assetOutput:AVAssetReaderTrackOutput,type:SpatialType,time: CMTime)->(CIImage?) {
var newpb:CIImage? = nil
// print("sta.....>>>>>>>")
print("sta.....>>>>>>>\(Date.now.timeIntervalSince1970)")
while let nextSampleBuffer = assetOutput.copyNextSampleBuffer() {
print("nextSampleBuffer.....+++++++\(Date.now.timeIntervalSince1970)")
return nil
// print("PlayByTransferConvertor while")
let presentationTime = CMSampleBufferGetPresentationTimeStamp(nextSampleBuffer)
if presentationTime == time {

View File

@ -78,4 +78,13 @@ class ZZHHelper {
}
return sec
}
class func getVersion()->String {
var verStr = "version"
if let appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String {
verStr = "version \(appVersion)"
} else {
}
return verStr
}
}

View File

@ -0,0 +1,175 @@
//
// FeedbackView.swift
// SwiftProject
//
// Created by aaa on 2024/4/12.
//
import Foundation
import UIKit
class FeedbackView: UIView {
var scenterBgView:UIView?
var alphaBgView:UIView?
var praiseCallback:(()->Void?)? = nil
var negativeCallback:(()->Void?)? = nil
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(frame: CGRect) {
super.init(frame: frame)
alphaBgView = UIView()
self.addSubview(alphaBgView!)
alphaBgView!.backgroundColor = UIColor(r: 10, g: 10, b: 10, a: 0.2)
alphaBgView?.alpha = 0
alphaBgView?.snp.makeConstraints({ make in
make.top.left.right.bottom.equalToSuperview()
})
let tgr = UITapGestureRecognizer(target: self, action: #selector(hiddenSelf))
self.addGestureRecognizer(tgr)
let centerBgView = UIView()
scenterBgView = centerBgView
self.addSubview(centerBgView)
centerBgView.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.centerY.equalToSuperview().offset(KScreenHeight+200)
make.width.equalTo(282)
make.height.equalTo(336)
}
let centerBg_ImageView = UIImageView()
centerBgView.addSubview(centerBg_ImageView)
centerBg_ImageView.image = UIImage(named: "feedback_centerbg")
centerBg_ImageView.contentMode = .scaleAspectFill
centerBg_ImageView.snp.makeConstraints { make in
make.top.right.bottom.left.equalToSuperview()
}
let desLabel = UILabel()
centerBgView.addSubview(desLabel)
desLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(21)
make.right.equalToSuperview().offset(-21)
}
desLabel.textColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)
desLabel.font = UIFont(name: "PingFangSC-Medium", size: 12)
desLabel.numberOfLines = 0
desLabel.lineBreakMode = .byWordWrapping
desLabel.textAlignment = .center
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineHeightMultiple = 1
paragraphStyle.alignment = .center
desLabel.attributedText = NSMutableAttributedString(string: NSLocalizedString("v1.5_feedbackdesc", comment: ""), attributes: [NSAttributedString.Key.paragraphStyle: paragraphStyle])
let praiseBtn = UIButton()
centerBgView.addSubview(praiseBtn)
praiseBtn.snp.makeConstraints { make in
make.left.equalToSuperview().offset(26)
make.right.equalToSuperview().offset(-26)
make.height.equalTo(38)
make.top.equalTo(desLabel.snp.bottom).offset(13)
}
praiseBtn.backgroundColor = UIColor(r: 254, g: 50, b: 101, a: 1)
praiseBtn.addTarget(self, action: #selector(praiseAction(sender: )), for: .touchUpInside)
praiseBtn.layer.cornerRadius = 8
praiseBtn.layer.masksToBounds = true
praiseBtn.setTitle(NSLocalizedString("v1.5_praise", comment: ""), for: .normal)
praiseBtn.titleLabel?.font = UIFont(name: "PingFangSC-Heavy", size: 16)
praiseBtn.setTitleColor(.white, for: .normal)
let negativeBtn = UIButton()
centerBgView.addSubview(negativeBtn)
negativeBtn.addTarget(self, action: #selector(negativeAction(sender: )), for: .touchUpInside)
negativeBtn.snp.makeConstraints { make in
make.left.equalToSuperview().offset(26)
make.right.equalToSuperview().offset(-26)
make.height.equalTo(20)
make.top.equalTo(praiseBtn.snp.bottom).offset(16)
make.bottom.equalToSuperview().offset(-16)
}
negativeBtn.setTitle(NSLocalizedString("v1.5_negative", comment: ""), for: .normal)
negativeBtn.titleLabel?.font = UIFont(name: "PingFangSC-Medium", size: 16)
negativeBtn.setTitleColor(UIColor(red: 0, green: 0, blue: 0, alpha: 0.6), for: .normal)
let closeBtn = UIButton()
self.addSubview(closeBtn)
closeBtn.setImage(UIImage(named: "feedback_close"), for: .normal)
closeBtn.addTarget(self, action: #selector(closeAction(sender: )), for: .touchUpInside)
closeBtn.snp.makeConstraints { make in
make.width.height.equalTo(32)
make.centerX.equalToSuperview()
make.top.equalTo(centerBgView.snp.bottom).offset(26)
}
}
@objc func closeAction(sender:UIButton) {
hiddenSelf()
}
@objc func praiseAction(sender:UIButton) {
hiddenSelf()
guard let praiseCallback else {
return
}
praiseCallback()
}
@objc func negativeAction(sender:UIButton) {
hiddenSelf()
guard let negativeCallback else {
return
}
negativeCallback()
}
func show(){
self.isHidden = false
UIView.animate(withDuration: 0.25) {[weak self] in
self?.scenterBgView!.snp.updateConstraints({ make in
make.centerY.equalToSuperview().offset(0)
})
self?.alphaBgView?.alpha = 1
self?.layoutIfNeeded()
} completion: {finish in
}
}
class func show(praiseCallback:@escaping ()->Void,negativeCallback:@escaping ()->Void) {
let fbView = FeedbackView(frame: .zero)
fbView.praiseCallback = praiseCallback
fbView.negativeCallback = negativeCallback
fbView.isHidden = true
KWindow?.addSubview(fbView)
fbView.snp.makeConstraints { make in
make.left.top.right.bottom.equalToSuperview()
}
KWindow?.layoutIfNeeded()
fbView.show()
}
@objc func hiddenSelf() {
UIView.animate(withDuration: 0.25) {[weak self] in
self?.scenterBgView!.snp.updateConstraints({ make in
make.centerY.equalToSuperview().offset(KScreenHeight+200)
})
self?.alphaBgView?.alpha = 0
self?.layoutIfNeeded()
} completion: {[weak self] finish in
self?.removeFromSuperview()
}
}
}

View File

@ -115,3 +115,9 @@
"右侧拨轮下按3s" = "Press right dial 3s";
"右侧中间键长按3s" = "Hold right middle 3s";
"右侧亮度循环按键" ="Right brightness cycle Hold 3s for HSBS, 7s for FSBS";
"v1.5_praise" = "Praise";
"v1.5_negative" = "Negative";
"v1.5_feedbackdesc" = "Do you like VPCamera?\nPlease rate a Five star or give a feed\n back to us";

View File

@ -116,3 +116,8 @@
"右侧拨轮下按3s" = "右侧拨轮下按3s";
"右侧中间键长按3s" = "右侧中间键长按3s";
"右侧亮度循环按键" ="右侧亮度循环按键\n长按 3s 切换 HSBS\n长按 7s 切换 FSBS";