添加多语言,剩下的ccspatialvideodisplaycontroller也是改了多语言,但是本次提交暂时忽略
This commit is contained in:
parent
bfbf17b997
commit
bc7d441f0c
@ -16,6 +16,7 @@
|
||||
009662462BB3B39900FCA65F /* External.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 009662452BB3B39900FCA65F /* External.storyboard */; };
|
||||
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 */; };
|
||||
00B946232B67B26D00DA668F /* ddd_video.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = 00B946222B67B26D00DA668F /* ddd_video.mp4 */; };
|
||||
00B946252B67B7DE00DA668F /* CCSpatialPlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00B946242B67B7DE00DA668F /* CCSpatialPlayView.swift */; };
|
||||
00C665732BAA81F900C309C3 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 00C665722BAA81F900C309C3 /* GoogleService-Info.plist */; };
|
||||
@ -109,6 +110,7 @@
|
||||
009662452BB3B39900FCA65F /* External.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = External.storyboard; sourceTree = "<group>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@ -225,6 +227,15 @@
|
||||
path = ExternalScreen;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
009662582BB5527200FCA65F /* CCSpatialVideoDisplayController */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
1E1EA2932B9364F000A5D5D2 /* CCSpatialVideoDisplayController.swift */,
|
||||
009662592BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift */,
|
||||
);
|
||||
path = CCSpatialVideoDisplayController;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1E02C9302B89909000DD3143 /* DeviceOperation */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -245,11 +256,11 @@
|
||||
1E39459C2B83837900D0F5CA /* RecordingVideo */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
009662582BB5527200FCA65F /* CCSpatialVideoDisplayController */,
|
||||
1EE5C5F62B8F973A00EDFC2F /* CCSpatialShootController.swift */,
|
||||
1E39459F2B8398B000D0F5CA /* VRVideoTransformController.swift */,
|
||||
1EFAF0BF2B8B7A59002A1773 /* VRPhotoTransformController.swift */,
|
||||
1E1EA2872B9325D300A5D5D2 /* CCSpatialPhotoDisplayController.swift */,
|
||||
1E1EA2932B9364F000A5D5D2 /* CCSpatialVideoDisplayController.swift */,
|
||||
);
|
||||
path = RecordingVideo;
|
||||
sourceTree = "<group>";
|
||||
@ -737,6 +748,7 @@
|
||||
AF2120AF2B4E930400400B7F /* RootManager.swift in Sources */,
|
||||
1E02C9322B8990C600DD3143 /* CCDeviceOperationListView.swift in Sources */,
|
||||
AF2120DA2B4E9BD400400B7F /* CCAlert.swift in Sources */,
|
||||
0096625A2BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift in Sources */,
|
||||
1EFB8C702B88DA4800C72119 /* CCBottomMenuCell.swift in Sources */,
|
||||
AF2120FA2B4EA5BD00400B7F /* CCHomeController.swift in Sources */,
|
||||
00ED6B342BA04AC200915BDE /* PlayByTransferConvertor.swift in Sources */,
|
||||
|
||||
@ -49,12 +49,6 @@
|
||||
ReferencedContainer = "container:SwiftProject.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<CommandLineArguments>
|
||||
<CommandLineArgument
|
||||
argument = "-FIRDebugEnabled"
|
||||
isEnabled = "YES">
|
||||
</CommandLineArgument>
|
||||
</CommandLineArguments>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
|
||||
Binary file not shown.
@ -387,8 +387,8 @@
|
||||
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1199"
|
||||
endingLineNumber = "1199"
|
||||
startingLineNumber = "1200"
|
||||
endingLineNumber = "1200"
|
||||
landmarkName = "compositeSpatialPhoto()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@ -467,8 +467,8 @@
|
||||
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "256"
|
||||
endingLineNumber = "256"
|
||||
startingLineNumber = "257"
|
||||
endingLineNumber = "257"
|
||||
landmarkName = "setttinisScreenMirroring(isScreenMirroring:)"
|
||||
landmarkType = "7">
|
||||
<Locations>
|
||||
@ -508,16 +508,112 @@
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "B47C33EC-9F24-438A-8666-A5370A6FBE6F"
|
||||
uuid = "D37B77BA-EBC8-4DD9-BE5F-E0FF53223C57"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayForVideoTask.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "83"
|
||||
endingLineNumber = "83"
|
||||
landmarkName = "convertFrame(request:)"
|
||||
landmarkType = "7">
|
||||
<Locations>
|
||||
<Location
|
||||
uuid = "D37B77BA-EBC8-4DD9-BE5F-E0FF53223C57 - e6cc3a15a2d9caad"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "SwiftProject.CCSpatialVideoDisplayController.convertFrame(request: __C.AVAsynchronousCIImageFilteringRequest) -> ()"
|
||||
moduleName = "SwiftProject"
|
||||
usesParentBreakpointCondition = "Yes"
|
||||
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayForVideoTask.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "83"
|
||||
endingLineNumber = "83"
|
||||
offsetFromSymbolStart = "556">
|
||||
</Location>
|
||||
<Location
|
||||
uuid = "D37B77BA-EBC8-4DD9-BE5F-E0FF53223C57 - e6cc3a15a2d9caad"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "SwiftProject.CCSpatialVideoDisplayController.convertFrame(request: __C.AVAsynchronousCIImageFilteringRequest) -> ()"
|
||||
moduleName = "SwiftProject"
|
||||
usesParentBreakpointCondition = "Yes"
|
||||
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayForVideoTask.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "83"
|
||||
endingLineNumber = "83"
|
||||
offsetFromSymbolStart = "524">
|
||||
</Location>
|
||||
</Locations>
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "C3AB3C59-7E1D-4AE8-8D10-25F7B54C5B5B"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayForVideoTask.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "87"
|
||||
endingLineNumber = "87"
|
||||
landmarkName = "convertFrame(request:)"
|
||||
landmarkType = "7">
|
||||
<Locations>
|
||||
<Location
|
||||
uuid = "C3AB3C59-7E1D-4AE8-8D10-25F7B54C5B5B - e6cc3a15a2d9cb11"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "SwiftProject.CCSpatialVideoDisplayController.convertFrame(request: __C.AVAsynchronousCIImageFilteringRequest) -> ()"
|
||||
moduleName = "SwiftProject"
|
||||
usesParentBreakpointCondition = "Yes"
|
||||
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayForVideoTask.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "87"
|
||||
endingLineNumber = "87"
|
||||
offsetFromSymbolStart = "668">
|
||||
</Location>
|
||||
<Location
|
||||
uuid = "C3AB3C59-7E1D-4AE8-8D10-25F7B54C5B5B - e6cc3a15a2d9cb11"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "SwiftProject.CCSpatialVideoDisplayController.convertFrame(request: __C.AVAsynchronousCIImageFilteringRequest) -> ()"
|
||||
moduleName = "SwiftProject"
|
||||
usesParentBreakpointCondition = "Yes"
|
||||
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayForVideoTask.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "87"
|
||||
endingLineNumber = "87"
|
||||
offsetFromSymbolStart = "564">
|
||||
</Location>
|
||||
</Locations>
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "AC3AF843-C4D6-4749-834A-B1DCA686B7CC"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "SwiftProject/CCKit/Base/BaseVirtualController.swift"
|
||||
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "179"
|
||||
endingLineNumber = "179"
|
||||
landmarkName = "setNavgaionTitle(string:)"
|
||||
startingLineNumber = "437"
|
||||
endingLineNumber = "437"
|
||||
landmarkName = "navgationButtonClick2(sender:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
|
||||
BIN
SwiftProject/SwiftProject/Assets.xcassets/home/Card_1_en.imageset/Card@2x.png
vendored
Normal file
BIN
SwiftProject/SwiftProject/Assets.xcassets/home/Card_1_en.imageset/Card@2x.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 55 KiB |
BIN
SwiftProject/SwiftProject/Assets.xcassets/home/Card_1_en.imageset/Card_1_en.png
vendored
Normal file
BIN
SwiftProject/SwiftProject/Assets.xcassets/home/Card_1_en.imageset/Card_1_en.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 95 KiB |
22
SwiftProject/SwiftProject/Assets.xcassets/home/Card_1_en.imageset/Contents.json
vendored
Normal file
22
SwiftProject/SwiftProject/Assets.xcassets/home/Card_1_en.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "Card@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "Card_1_en.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
SwiftProject/SwiftProject/Assets.xcassets/home/Card_2_en.imageset/Card@2x.png
vendored
Normal file
BIN
SwiftProject/SwiftProject/Assets.xcassets/home/Card_2_en.imageset/Card@2x.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 93 KiB |
BIN
SwiftProject/SwiftProject/Assets.xcassets/home/Card_2_en.imageset/Card_2_en.png
vendored
Normal file
BIN
SwiftProject/SwiftProject/Assets.xcassets/home/Card_2_en.imageset/Card_2_en.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 150 KiB |
22
SwiftProject/SwiftProject/Assets.xcassets/home/Card_2_en.imageset/Contents.json
vendored
Normal file
22
SwiftProject/SwiftProject/Assets.xcassets/home/Card_2_en.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "Card@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "Card_2_en.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
SwiftProject/SwiftProject/Assets.xcassets/home/Card_en.imageset/Card@3x.png
vendored
Normal file
BIN
SwiftProject/SwiftProject/Assets.xcassets/home/Card_en.imageset/Card@3x.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 96 KiB |
BIN
SwiftProject/SwiftProject/Assets.xcassets/home/Card_en.imageset/Card_en.png
vendored
Normal file
BIN
SwiftProject/SwiftProject/Assets.xcassets/home/Card_en.imageset/Card_en.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 56 KiB |
22
SwiftProject/SwiftProject/Assets.xcassets/home/Card_en.imageset/Contents.json
vendored
Normal file
22
SwiftProject/SwiftProject/Assets.xcassets/home/Card_en.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "Card_en.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "Card@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@ -80,7 +80,8 @@ class BaseController: BaseVirtualController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
self.setNavgationBarColorImg(color: tabBarTintSelectColor)
|
||||
self.setNavgationBarColorImg(color: .black)
|
||||
// self.setNavgationBarColorImg(color: tabBarTintSelectColor)
|
||||
self.setNavgationBarLine(color: BackGroundColor)
|
||||
self.setNavgationTitleAttribute(font: UIFont.systemFont(ofSize: 18), color: UIColor.hexStringToColor(hexString: "#ffffff"))
|
||||
if(_isRoot == false){
|
||||
|
||||
@ -188,6 +188,11 @@ class BaseVirtualController: UIViewController {
|
||||
// }
|
||||
titleLab?.centerX = (navtionImgView?.width)! * 0.5
|
||||
titleLab?.centerY = StatuBar_Height + NavBar_Height * 0.5;
|
||||
|
||||
}
|
||||
|
||||
public func setNavgationTitleForCaptureVC(string:String) {
|
||||
setNavgaionTitle(string: string)
|
||||
titleLab?.backgroundColor = .red
|
||||
titleLab?.layer.cornerRadius = 2
|
||||
titleLab?.layer.masksToBounds = true
|
||||
|
||||
@ -126,7 +126,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
|
||||
mTopCenterBtn!.layer.cornerRadius = mTopCenterBtn!.height * 0.5
|
||||
mTopCenterBtn!.layer.borderWidth = 0.5
|
||||
mTopCenterBtn!.layer.borderColor = UIColor.white.cgColor
|
||||
mTopCenterBtn!.setTitle("未连接VR设备", for: UIControl.State.normal)
|
||||
mTopCenterBtn!.setTitle(NSLocalizedString("未连接VR设备", comment: ""), for: UIControl.State.normal)
|
||||
mTopCenterBtn!.setTitleColor(UIColor.white, for: UIControl.State.normal)
|
||||
mTopCenterBtn!.titleLabel?.font = UIFont.systemFont(ofSize: 12)
|
||||
mTopCenterBtn!.isEnabled = false
|
||||
@ -154,7 +154,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
|
||||
output.portType == AVAudioSession.Port.airPlay
|
||||
}
|
||||
|
||||
mTopCenterBtn!.setTitle((isAirPlayActive ? "已连接外部设备" : "未连接VR设备"), for: UIControl.State.normal)
|
||||
mTopCenterBtn!.setTitle((isAirPlayActive ? NSLocalizedString("已连接外部设备", comment: "") : NSLocalizedString("未连接VR设备", comment: "")), for: UIControl.State.normal)
|
||||
mTopCenterBtn!.backgroundColor = isAirPlayActive ? UIColor.colorWithRGBINT(_r: 73, _g: 34, _b: 208) : UIColor.hexStringToColor(hexString: "#060507")
|
||||
isAirPlayActive ? mTopCenterBtn!.setImage(UIImage.init(named: "linked_button"), for: .normal) : mTopCenterBtn!.setImage(nil,for: .normal)
|
||||
isAirPlayActive ? mTopCenterBtn!.updateBtnEdgeInsets(style: .Left, space: 5):mTopCenterBtn!.updateBtnEdgeInsets(style: .Left, space: 0)
|
||||
@ -206,7 +206,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
|
||||
mCenLab1!.textColor = UIColor.white
|
||||
mCenLab1!.font = UIFont.boldSystemFont(ofSize: 18)
|
||||
self.view.addSubview(mCenLab1!)
|
||||
mCenLab1!.text = "Tips.1 拍摄空间照片以及视频"
|
||||
mCenLab1!.text = NSLocalizedString("Tips.1 拍摄空间照片以及视频", comment: "")
|
||||
mCenLab1!.sizeToFit()
|
||||
mCenLab1!.top = cycleScrollView!.bottom + 32
|
||||
mCenLab1!.centerX = SCREEN_Width * 0.5
|
||||
@ -218,7 +218,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
|
||||
mCenLab2!.textColor = UIColor.hexStringToColor(hexString: "#CDCDCD")
|
||||
mCenLab2!.font = UIFont.systemFont(ofSize: 14)
|
||||
self.view.addSubview(mCenLab2!)
|
||||
mCenLab2!.text = "一键拍摄空间格式的照片以及视频,留住美好瞬间"
|
||||
mCenLab2!.text = NSLocalizedString("一键拍摄空间格式的照片以及视频,留住美好瞬间", comment: "")
|
||||
mCenLab2!.sizeToFit()
|
||||
mCenLab2!.top = mCenLab1!.bottom + 16
|
||||
mCenLab2!.centerX = SCREEN_Width * 0.5
|
||||
@ -227,10 +227,10 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
|
||||
//滚动切换文本显示
|
||||
func cycleScrollView(_ cycleScrollView: LLCycleScrollView, scrollTo index: NSInteger) {
|
||||
// print("当前页面索引:\(index)")
|
||||
let arr1 = ["Tips.1 拍摄空间照片以及视频","Tips.2 视频转码","Tips.3 直连VR设备"]
|
||||
let arr2 = ["一键拍摄空间格式的照片以及视频,留住美好瞬间",
|
||||
"可以将任意格式视频转码为 VR 或 3D 格式",
|
||||
"可以通过链接VR设备,直接观看转码内容"]
|
||||
let arr1 = [NSLocalizedString("Tips.1 拍摄空间照片以及视频", comment: ""),NSLocalizedString("Tips.2 视频转码", comment: ""),NSLocalizedString("Tips.3 直连VR设备", comment: "")]
|
||||
let arr2 = [NSLocalizedString("一键拍摄空间格式的照片以及视频,留住美好瞬间", comment: ""),
|
||||
NSLocalizedString("可以将任意格式视频转码为 VR 或 3D 格式", comment: ""),
|
||||
NSLocalizedString("可以通过链接VR设备,直接观看转码内容", comment: "")]
|
||||
DispatchQueue.main.async { [weak self] in
|
||||
self!.mCenLab1!.width = SCREEN_Width - 30
|
||||
self!.mCenLab1!.text = arr1[index]
|
||||
@ -264,7 +264,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
|
||||
mBottomBtn1?.frame = CGRect(x: 24, y: 10, width: wd1, height: hi1)
|
||||
mBottomBtn1!.bottom = SCREEN_Height - SafeAreaBottom_Height - 200
|
||||
mBottomBtn1!.titleLabel?.font = UIFont.systemFont(ofSize: 12)
|
||||
mBottomBtn1?.setBackgroundImage(UIImage.init(named: "Card"), for: UIControl.State.normal)
|
||||
mBottomBtn1?.setBackgroundImage(UIImage.init(named: NSLocalizedString("home_card", comment: "")), for: UIControl.State.normal)
|
||||
|
||||
mBottomBtn2 = UIButton.init(type: UIButton.ButtonType.custom)
|
||||
self.view.addSubview(mBottomBtn2!)
|
||||
@ -274,7 +274,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
|
||||
mBottomBtn2?.frame = CGRect(x: 24, y: 10, width: wd1, height: hi1)
|
||||
mBottomBtn2!.top = mBottomBtn1!.bottom + 12
|
||||
mBottomBtn2!.titleLabel?.font = UIFont.systemFont(ofSize: 12)
|
||||
mBottomBtn2?.setBackgroundImage(UIImage.init(named: "Card_1"), for: UIControl.State.normal)
|
||||
mBottomBtn2?.setBackgroundImage(UIImage.init(named: NSLocalizedString("home_card_1", comment: "")), for: UIControl.State.normal)
|
||||
|
||||
mBottomBtn3 = UIButton.init(type: UIButton.ButtonType.custom)
|
||||
self.view.addSubview(mBottomBtn3!)
|
||||
@ -284,7 +284,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
|
||||
mBottomBtn3?.frame = CGRect(x: 24, y: mBottomBtn1!.top, width: wd1, height: hi2)
|
||||
mBottomBtn3!.left = mBottomBtn1!.right + 10
|
||||
mBottomBtn3!.titleLabel?.font = UIFont.systemFont(ofSize: 12)
|
||||
mBottomBtn3?.setBackgroundImage(UIImage.init(named: "Card_2"), for: UIControl.State.normal)
|
||||
mBottomBtn3?.setBackgroundImage(UIImage.init(named: NSLocalizedString("home_card_2", comment: "")), for: UIControl.State.normal)
|
||||
}
|
||||
|
||||
@objc public func navgationButtonClick2(sender:UIButton){
|
||||
@ -304,7 +304,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
|
||||
// gotoSpatialPlayVC()
|
||||
|
||||
// CCBottomMenuPopView.share.show(imageNameArray: ["Icon_PopUp_Icon_Scenes","Icon_PopUp_Icon_Photo","Icon_PopUp_Icon_Folder"], textArray: ["空间相簿","照片图库","本机文件"]) { index in
|
||||
CCBottomMenuPopView.share.show(imageNameArray: ["Icon_PopUp_Icon_Scenes","Icon_PopUp_Icon_Photo"], textArray: ["空间相簿","照片图库"]) { index in
|
||||
CCBottomMenuPopView.share.show(imageNameArray: ["Icon_PopUp_Icon_Scenes","Icon_PopUp_Icon_Photo"], textArray: [NSLocalizedString("空间相簿", comment: ""),NSLocalizedString("照片图库", comment: "")]) { index in
|
||||
|
||||
if index == 0 {
|
||||
self.spaceAlbum()
|
||||
@ -364,15 +364,15 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
|
||||
mineView!.handle = {dic in
|
||||
print(dic["name"] as Any)
|
||||
|
||||
if((dic["name"] as! String).elementsEqual("隐私政策")){
|
||||
if((dic["name"] as! String).elementsEqual(NSLocalizedString("隐私政策", comment: ""))){
|
||||
let vc:CCWebController = CCWebController()
|
||||
let sizeUrl = NSLocalizedString("siteUrl", comment: "隐私政策")
|
||||
let sizeUrl = NSLocalizedString("siteUrl", comment: "隐私政策url")
|
||||
vc.urlString = sizeUrl
|
||||
self.navigationController?.pushViewController(vc, animated: true)
|
||||
}
|
||||
else if((dic["name"] as! String).elementsEqual("联系我们")) {//联系我们
|
||||
else if((dic["name"] as! String).elementsEqual(NSLocalizedString("联系我们", comment: ""))) {//联系我们
|
||||
if !MFMailComposeViewController.canSendMail() {
|
||||
SVProgressHUD.showInfo(withStatus: "请先前往系统设置配置发送的邮箱信息")
|
||||
SVProgressHUD.showInfo(withStatus: NSLocalizedString("请先前往系统设置配置发送的邮箱信息", comment: ""))
|
||||
return
|
||||
}
|
||||
|
||||
@ -380,7 +380,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
|
||||
mailComposeViewController.mailComposeDelegate = self
|
||||
|
||||
mailComposeViewController.setSubject("")
|
||||
mailComposeViewController.setMessageBody("请在此处描述您需要反馈的问题.", isHTML: false)
|
||||
mailComposeViewController.setMessageBody(NSLocalizedString("请在此处描述您需要反馈的问题.", comment: ""), isHTML: false)
|
||||
mailComposeViewController.setToRecipients(["fangaoqdi@163.com"])
|
||||
|
||||
self.present(mailComposeViewController, animated: true)
|
||||
@ -467,12 +467,12 @@ extension CCHomeController: TZImagePickerControllerDelegate,UINavigationControll
|
||||
let status = AVCaptureDevice.authorizationStatus(for: .video)
|
||||
if status == AVAuthorizationStatus.restricted || status == AVAuthorizationStatus.denied {
|
||||
|
||||
let alertC = UIAlertController(title: "Unable to use camera", message: "Please allow access to the camera in “Settings Privacy Camera” on iPhone", preferredStyle: .alert)
|
||||
let alertC = UIAlertController(title: NSLocalizedString(NSLocalizedString("无法使用相机", comment: ""), comment: ""), message: NSLocalizedString("请前往[设置->隐私安全]中开启访问授权", comment: ""), preferredStyle: .alert)
|
||||
|
||||
// let actionCancel = UIAlertAction(title: "Cancel", style: .cancel) { (action:UIAlertAction) in
|
||||
// }
|
||||
|
||||
let actionSet = UIAlertAction(title: "Setting", style: .cancel) { (action:UIAlertAction) in
|
||||
let actionSet = UIAlertAction(title: NSLocalizedString("设置", comment: ""), style: .cancel) { (action:UIAlertAction) in
|
||||
let url:URL = URL(string: UIApplication.openSettingsURLString)!
|
||||
UIApplication.shared.open(url, options: [:], completionHandler: nil)
|
||||
|
||||
|
||||
@ -18,8 +18,9 @@ class CCWebController: BaseController, WKNavigationDelegate {
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
self.view.backgroundColor = UIColor.white
|
||||
self.setNavgaionTitle(string: "隐私协议")
|
||||
|
||||
self.titleLab?.width = 200
|
||||
self.setNavgaionTitle(string: NSLocalizedString("隐私政策", comment: ""))
|
||||
self.titleLab?.sizeToFit()
|
||||
// 创建 WKWebView
|
||||
webView = WKWebView()
|
||||
view.addSubview(webView)
|
||||
@ -37,6 +38,6 @@ class CCWebController: BaseController, WKNavigationDelegate {
|
||||
// WKNavigationDelegate 方法:网页加载完成时调用
|
||||
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
|
||||
|
||||
self.setNavgaionTitle(string: webView.title!)
|
||||
// self.setNavgaionTitle(string: webView.title!)
|
||||
}
|
||||
}
|
||||
|
||||
@ -92,11 +92,12 @@ class CCSpatialPhotoDisplayController: BaseController {
|
||||
button.layer.cornerRadius = 18
|
||||
button.layer.borderWidth = 1
|
||||
button.layer.borderColor = UIColor.white.cgColor
|
||||
button.setTitle("平行眼", for: UIControl.State.normal)
|
||||
button.setTitle(NSLocalizedString("平行眼", comment: ""), for: UIControl.State.normal)
|
||||
button.setImage(UIImage.init(named: "type_button_arrow_down"), for: .normal)
|
||||
button.updateBtnEdgeInsets(style: .Right, space: 10)
|
||||
|
||||
button.setTitleColor(UIColor.white, for: UIControl.State.normal)
|
||||
button.titleLabel?.font = KFont_Medium(14)
|
||||
button.updateBtnEdgeInsets(style: .Right, space: 5)
|
||||
return button
|
||||
}()
|
||||
|
||||
@ -111,11 +112,11 @@ class CCSpatialPhotoDisplayController: BaseController {
|
||||
return imageView
|
||||
}()
|
||||
|
||||
var typeData:[(icon:String,title:String,isHiden:Bool)] = [(icon:"type_check",title:"平行眼",isHiden:false),
|
||||
(icon:"type_check",title:"单眼2D",isHiden:false),
|
||||
var typeData:[(icon:String,title:String,isHiden:Bool)] = [(icon:"type_check",title:NSLocalizedString("平行眼", comment: ""),isHiden:false),
|
||||
(icon:"type_check",title:NSLocalizedString("单眼2D", comment: ""),isHiden:false),
|
||||
|
||||
(icon:"type_check",title:"红蓝立体",isHiden:false),
|
||||
(icon:"type_check",title:"交叉眼",isHiden:false)]
|
||||
(icon:"type_check",title:NSLocalizedString("红蓝立体", comment: ""),isHiden:false),
|
||||
(icon:"type_check",title:NSLocalizedString("交叉眼", comment: ""),isHiden:false)]
|
||||
|
||||
lazy var menuView: CCSpatialDisplayTypeView = {
|
||||
//数据源(icon可不填)
|
||||
|
||||
@ -60,7 +60,7 @@ class CCSpatialShootController: BaseController {
|
||||
label.backgroundColor = UIColor.darkGray
|
||||
label.font = KFont_Medium(12)
|
||||
label.textColor = KTextColor_White
|
||||
label.text = "你只需捕捉美好,转码交给我们"
|
||||
label.text = ""//你只需捕捉美好,转码交给我们"
|
||||
label.textAlignment = .center
|
||||
label.alpha = 1.0
|
||||
label.layer.cornerRadius = 8
|
||||
@ -93,7 +93,7 @@ class CCSpatialShootController: BaseController {
|
||||
label.backgroundColor = UIColor.clear
|
||||
label.font = KFont_Medium(14)
|
||||
label.textColor = KTextColor_White
|
||||
label.text = "将iPhone旋转为横向"
|
||||
label.text = NSLocalizedString("将iPhone旋转为横向", comment: "")
|
||||
label.alpha = 0.0
|
||||
label.isHidden = true
|
||||
return label
|
||||
@ -230,7 +230,7 @@ class CCSpatialShootController: BaseController {
|
||||
label.backgroundColor = UIColor.clear
|
||||
label.font = KFont_Medium(12)
|
||||
label.textColor = UIColor(hexString: "#ffffff", alpha: 0.6)
|
||||
label.text = "拍照"
|
||||
label.text = NSLocalizedString("拍照", comment: "")
|
||||
label.isHidden = false
|
||||
return label
|
||||
}()
|
||||
@ -240,7 +240,7 @@ class CCSpatialShootController: BaseController {
|
||||
label.backgroundColor = UIColor.clear
|
||||
label.font = KFont_Medium(12)
|
||||
label.textColor = UIColor(hexString: "#ffffff", alpha: 0.6)
|
||||
label.text = "摄像"
|
||||
label.text = NSLocalizedString("摄像", comment: "")
|
||||
label.isHidden = true
|
||||
return label
|
||||
}()
|
||||
@ -785,7 +785,8 @@ class CCSpatialShootController: BaseController {
|
||||
count += 1
|
||||
let timeText = self.transToHourMinSec(second: count)
|
||||
DispatchQueue.main.async {
|
||||
self.setNavgaionTitle(string: timeText)
|
||||
// self.setNavgaionTitle(string: timeText)
|
||||
self.setNavgationTitleForCaptureVC(string: timeText)
|
||||
}
|
||||
}
|
||||
})
|
||||
@ -1014,13 +1015,13 @@ extension CCSpatialShootController: AVCaptureFileOutputRecordingDelegate {
|
||||
print("Video recording finished with error: \(error.localizedDescription)")
|
||||
|
||||
DispatchQueue.main.async {
|
||||
SVProgressHUD.showSuccess(withStatus: "合成过程出现问题")
|
||||
SVProgressHUD.showSuccess(withStatus: NSLocalizedString("合成过程出现问题", comment: ""))
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
DispatchQueue.main.async {
|
||||
SVProgressHUD.show(withStatus: "处理中...")
|
||||
SVProgressHUD.show(withStatus: NSLocalizedString("处理中...", comment: ""))
|
||||
}
|
||||
|
||||
|
||||
@ -1080,10 +1081,10 @@ extension CCSpatialShootController: AVCaptureFileOutputRecordingDelegate {
|
||||
// SVProgressHUD.showSuccess(withStatus: "空间视频成功保存到相册")
|
||||
// }
|
||||
} else if let error = error {
|
||||
print("生成空间视频失败:\(error.localizedDescription)")
|
||||
|
||||
|
||||
DispatchQueue.main.async {
|
||||
SVProgressHUD.showInfo(withStatus: "空间视频保存失败:\(error.localizedDescription)")
|
||||
SVProgressHUD.showInfo(withStatus: "\(NSLocalizedString("空间视频保存失败", comment: "")):\(error.localizedDescription)")
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1233,7 +1234,7 @@ extension CCSpatialShootController: AVCaptureFileOutputRecordingDelegate {
|
||||
if let error = error {
|
||||
print("Error saving photo to library: \(error.localizedDescription)")
|
||||
DispatchQueue.main.async {
|
||||
SVProgressHUD.showInfo(withStatus: "空间图片保存失败: \(error.localizedDescription)")
|
||||
SVProgressHUD.showInfo(withStatus: "\(NSLocalizedString("空间图片保存失败", comment: "")): \(error.localizedDescription)")
|
||||
}
|
||||
} else {
|
||||
print("Photo saved to library successfully.")
|
||||
|
||||
@ -72,7 +72,7 @@ class VRPhotoTransformController: BaseController {
|
||||
ZZHHelper.setNowTimeToUserDefaultWithKey(kNowTimeToUserDefaultKey_PhotoTransformController)
|
||||
self.view.backgroundColor = UIColor.black
|
||||
self.navLine?.isHidden = true
|
||||
self.setNavgaionTitle(string: "图片转码")
|
||||
self.setNavgaionTitle(string: NSLocalizedString("图片转码", comment: ""))
|
||||
|
||||
//393*236
|
||||
mTopImgView = UIImageView(frame: CGRect(x: 0, y: 0, width: SCREEN_Width, height: SCREEN_Height * 236/393))
|
||||
@ -142,7 +142,7 @@ class VRPhotoTransformController: BaseController {
|
||||
mBottomBtn!.bottom = SCREEN_Height - SafeAreaBottom_Height - 30
|
||||
mBottomBtn!.clipsToBounds = true
|
||||
mBottomBtn!.layer.cornerRadius = 8
|
||||
mBottomBtn!.setTitle("转码导出", for: UIControl.State.normal)
|
||||
mBottomBtn!.setTitle(NSLocalizedString("转码导出", comment: ""), for: UIControl.State.normal)
|
||||
mBottomBtn!.setTitleColor(UIColor.white, for: UIControl.State.normal)
|
||||
mBottomBtn!.titleLabel?.font = UIFont.systemFont(ofSize: 14)
|
||||
|
||||
@ -210,7 +210,7 @@ class VRPhotoTransformController: BaseController {
|
||||
mLabel!.textColor = UIColor.hexStringToColor(hexString: "#6A696A")
|
||||
mLabel!.font = UIFont.systemFont(ofSize: 14)
|
||||
self.view.addSubview(mLabel!)
|
||||
mLabel!.text = "格式"
|
||||
mLabel!.text = NSLocalizedString("格式", comment: "")
|
||||
mLabel!.sizeToFit()
|
||||
mLabel!.top = mCenView!.bottom + 32
|
||||
mLabel!.left = 24
|
||||
@ -234,7 +234,7 @@ class VRPhotoTransformController: BaseController {
|
||||
|
||||
func setSpatialParametersListData() {
|
||||
let popData = [
|
||||
(type:CCTransformParameterType.hsbs_3D,title:"3D 格式",name:"3D HSBS")]
|
||||
(type:CCTransformParameterType.hsbs_3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HSBS")]
|
||||
|
||||
mTabView?.setSpatialParametersData(data: popData)
|
||||
}
|
||||
@ -242,15 +242,15 @@ class VRPhotoTransformController: BaseController {
|
||||
@objc public func navgationButtonClick2(sender:UIButton){
|
||||
//侧边栏
|
||||
if(sender.tag == 10){
|
||||
showProgress()
|
||||
|
||||
//转码
|
||||
// let isSpatial = isSpatialImage(imageURL: sourceImageURL!)
|
||||
let isSpatial = isSpatialImage(originalData: sourceImageData!)
|
||||
if !isSpatial {
|
||||
print("")
|
||||
return SVProgressHUD.showInfo(withStatus: "这不是一张空间图片,无法进行转码")
|
||||
return SVProgressHUD.showInfo(withStatus: NSLocalizedString("这不是一张空间图片,无法进行转码", comment: ""))
|
||||
}
|
||||
|
||||
showProgress()
|
||||
DispatchQueue.main.async {
|
||||
self.progressView?.updateProgress(value: 1)
|
||||
}
|
||||
@ -288,12 +288,12 @@ class VRPhotoTransformController: BaseController {
|
||||
if let error = error {
|
||||
print("保存失败:\(error)")
|
||||
DispatchQueue.main.async {
|
||||
self.progressView?.updateInfo(title: "导出相册失败", desc: "请查看相册权限")
|
||||
self.progressView?.updateInfo(title:NSLocalizedString( "导出相册失败", comment: ""), desc: NSLocalizedString("请查看相册权限", comment: ""))
|
||||
}
|
||||
} else {
|
||||
DispatchQueue.main.async {
|
||||
self.progressView?.updateProgress(value: 1)
|
||||
self.progressView?.updateInfo(title: "转码完成", desc: "导出内容已存储到相册中")
|
||||
self.progressView?.updateInfo(title: NSLocalizedString("转码完成", comment: ""), desc: NSLocalizedString("导出内容已存储到相册中", comment: ""))
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -322,34 +322,34 @@ class VRPhotoTransformController: BaseController {
|
||||
3D FOU(全高上下格式)
|
||||
*/
|
||||
|
||||
let action1 = UIAlertAction(title: "3D HSBS(半宽左右格式)" , style: .default) { [self] (action:UIAlertAction) in
|
||||
let action1 = UIAlertAction(title: NSLocalizedString("3D HSBS(半宽左右格式)", comment: "") , style: .default) { [self] (action:UIAlertAction) in
|
||||
print("3D HSBS(半宽左右格式)")
|
||||
|
||||
let popData = [
|
||||
(type:CCTransformParameterType.hsbs_3D,title:"3D 格式",name:"3D HSBS")]
|
||||
(type:CCTransformParameterType.hsbs_3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HSBS")]
|
||||
mTabView?.setSpatialParametersData(data: popData)
|
||||
}
|
||||
let action2 = UIAlertAction(title: "3D FSBS(全宽左右格式)" , style: .default) { [self] (action:UIAlertAction) in
|
||||
let action2 = UIAlertAction(title: NSLocalizedString("3D FSBS(全宽左右格式)", comment: "") , style: .default) { [self] (action:UIAlertAction) in
|
||||
print("3D FSBS(全宽左右格式)")
|
||||
let popData = [
|
||||
(type:CCTransformParameterType.fsbs_3D,title:"3D 格式",name:"3D FSBS")]
|
||||
(type:CCTransformParameterType.fsbs_3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D FSBS")]
|
||||
mTabView?.setSpatialParametersData(data: popData)
|
||||
}
|
||||
let action3 = UIAlertAction(title: "3D HOU(半高上下格式)" , style: .default) { [self] (action:UIAlertAction) in
|
||||
let action3 = UIAlertAction(title: NSLocalizedString("3D HOU(半高上下格式)" , comment: ""), style: .default) { [self] (action:UIAlertAction) in
|
||||
print("3D HOU(半高上下格式)")
|
||||
let popData = [
|
||||
(type:CCTransformParameterType.hou_3d,title:"3D 格式",name:"3D HOU")]
|
||||
(type:CCTransformParameterType.hou_3d,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HOU")]
|
||||
mTabView?.setSpatialParametersData(data: popData)
|
||||
}
|
||||
let action4 = UIAlertAction(title: "3D FOU(全高上下格式)" , style: .default) { [self] (action:UIAlertAction) in
|
||||
let action4 = UIAlertAction(title: NSLocalizedString("3D FOU(全高上下格式)", comment: "") , style: .default) { [self] (action:UIAlertAction) in
|
||||
print("3D FOU(全高上下格式)")
|
||||
let popData = [
|
||||
(type:CCTransformParameterType.fou_3D,title:"3D 格式",name:"3D FOU")]
|
||||
(type:CCTransformParameterType.fou_3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D FOU")]
|
||||
mTabView?.setSpatialParametersData(data: popData)
|
||||
}
|
||||
|
||||
|
||||
let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil)
|
||||
let cancelAction = UIAlertAction(title: NSLocalizedString("取消", comment: ""), style: .cancel, handler: nil)
|
||||
alert.addAction(action1)
|
||||
alert.addAction(action2)
|
||||
alert.addAction(action3)
|
||||
|
||||
@ -120,10 +120,12 @@ class VRVideoTransformController: BaseController {
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
|
||||
|
||||
ZZHHelper.setNowTimeToUserDefaultWithKey(kNowTimeToUserDefaultKey_VideoTransformController)
|
||||
self.view.backgroundColor = UIColor.black
|
||||
self.navLine?.isHidden = true
|
||||
self.setNavgaionTitle(string: "视频转码")
|
||||
self.setNavgaionTitle(string: NSLocalizedString("视频转码", comment: ""))
|
||||
|
||||
//393*236
|
||||
mTopImgView = UIImageView(frame: CGRect(x: 0, y: 0, width: SCREEN_Width, height: SCREEN_Height * 236/393))
|
||||
@ -156,7 +158,6 @@ class VRVideoTransformController: BaseController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
self.creatUI()
|
||||
setSpatialParametersListData()
|
||||
}
|
||||
@ -173,7 +174,7 @@ class VRVideoTransformController: BaseController {
|
||||
mBottomBtn!.bottom = SCREEN_Height - SafeAreaBottom_Height - 30
|
||||
mBottomBtn!.clipsToBounds = true
|
||||
mBottomBtn!.layer.cornerRadius = 8
|
||||
mBottomBtn!.setTitle("转码导出", for: UIControl.State.normal)
|
||||
mBottomBtn!.setTitle(NSLocalizedString("转码导出", comment: ""), for: UIControl.State.normal)
|
||||
mBottomBtn!.setTitleColor(UIColor.white, for: UIControl.State.normal)
|
||||
mBottomBtn!.titleLabel?.font = UIFont.systemFont(ofSize: 14)
|
||||
|
||||
@ -241,7 +242,7 @@ class VRVideoTransformController: BaseController {
|
||||
mLabel!.textColor = UIColor.hexStringToColor(hexString: "#6A696A")
|
||||
mLabel!.font = UIFont.systemFont(ofSize: 14)
|
||||
self.view.addSubview(mLabel!)
|
||||
mLabel!.text = "格式"
|
||||
mLabel!.text = NSLocalizedString("格式", comment: "")
|
||||
mLabel!.sizeToFit()
|
||||
mLabel!.top = mCenView!.bottom + 32
|
||||
mLabel!.left = 24
|
||||
@ -249,25 +250,26 @@ class VRVideoTransformController: BaseController {
|
||||
let maxHi = mBottomBtn!.top - mCenView!.bottom - 110
|
||||
var hi = 62.0*5
|
||||
if(hi > maxHi){hi = maxHi}
|
||||
mTabView = CCSpatialPlayView.init(frame: CGRect(x: 24, y: mCenView!.bottom + 70, width: SCREEN_Width - 48, height: hi))
|
||||
// mTabView = CCSpatialPlayView.init(frame: CGRect(x: 24, y: mCenView!.bottom + 70, width: SCREEN_Width - 48, height: hi))
|
||||
mTabView = CCSpatialPlayView.init(frame: CGRect(x: 0, y: mCenView!.bottom + 70, width: SCREEN_Width, height: hi))
|
||||
self.view.addSubview(mTabView!)
|
||||
mTabView!.backgroundColor = UIColor.hexStringToColor(hexString: "#1F1E20")
|
||||
mTabView?.clipsToBounds = true
|
||||
mTabView?.layer.cornerRadius = 12
|
||||
mTabView?.handle = {dic in
|
||||
print(dic)
|
||||
self.selectedCellAction(dic)
|
||||
mTabView!.backgroundColor = UIColor.clear//UIColor.hexStringToColor(hexString: "#1F1E20")
|
||||
// mTabView?.clipsToBounds = true
|
||||
// mTabView?.layer.cornerRadius = 33
|
||||
mTabView?.handle = {[weak self] dic in
|
||||
// print(dic)
|
||||
self?.selectedCellAction(dic)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
func setSpatialParametersListData() {
|
||||
let popData = [
|
||||
(type:CCTransformParameterType.format3D,title:"3D 格式",name:"3D HSBS"),
|
||||
(type:CCTransformParameterType.resolution,title:"分辨率",name:"原始"),
|
||||
(type:CCTransformParameterType.bitRate,title:"比特率",name:"最佳"),
|
||||
(type:CCTransformParameterType.formatVideoEncoding,title:"视频编码格式",name:"H.265"),
|
||||
(type:CCTransformParameterType.horizontalDialogueAdjustment,title:"水平视差调整",name:"0")]
|
||||
(type:CCTransformParameterType.format3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HSBS"),
|
||||
(type:CCTransformParameterType.resolution,title:NSLocalizedString("分辨率", comment: "" ),name:NSLocalizedString("原始", comment: "")),
|
||||
(type:CCTransformParameterType.bitRate,title:NSLocalizedString("比特率", comment: ""),name:NSLocalizedString("最佳", comment: "")),
|
||||
(type:CCTransformParameterType.formatVideoEncoding,title:NSLocalizedString("视频编码格式", comment: ""),name:"H.265"),
|
||||
(type:CCTransformParameterType.horizontalDialogueAdjustment,title:NSLocalizedString("水平视差调整", comment: ""),name:"0")]
|
||||
|
||||
mTabView?.setSpatialParametersData(data: popData)
|
||||
}
|
||||
@ -289,10 +291,10 @@ class VRVideoTransformController: BaseController {
|
||||
}
|
||||
//MARK: - 刷新界面
|
||||
func according3DFormatShowList(format:Video3DFormat) {
|
||||
var presetText = "原始"
|
||||
var presetText = NSLocalizedString("原始", comment: "")
|
||||
switch self.selectedPreset {
|
||||
case .mvhevc1440x1440:
|
||||
presetText = "原始"
|
||||
presetText = NSLocalizedString("原始", comment: "")
|
||||
break
|
||||
case .hevc3840x2160:
|
||||
presetText = "4K"
|
||||
@ -309,19 +311,19 @@ class VRVideoTransformController: BaseController {
|
||||
|
||||
|
||||
|
||||
var bitText = "最佳"
|
||||
var bitText = NSLocalizedString("最佳", comment: "")
|
||||
switch self.selectedBitsPerPixel {
|
||||
case .best:
|
||||
bitText = "最佳"
|
||||
bitText = NSLocalizedString("最佳", comment: "")
|
||||
break
|
||||
case .high:
|
||||
bitText = "高"
|
||||
bitText = NSLocalizedString("高", comment: "")
|
||||
break
|
||||
case .medium:
|
||||
bitText = "中"
|
||||
bitText = NSLocalizedString("中", comment: "")
|
||||
break
|
||||
case .low:
|
||||
bitText = "低"
|
||||
bitText = NSLocalizedString("低", comment: "")
|
||||
break
|
||||
}
|
||||
|
||||
@ -345,46 +347,46 @@ class VRVideoTransformController: BaseController {
|
||||
|
||||
//列表数据
|
||||
var popData = [
|
||||
(type:CCTransformParameterType.format3D,title:"3D 格式",name:"3D HSBS"),
|
||||
(type:CCTransformParameterType.resolution,title:"分辨率",name:presetText),
|
||||
(type:CCTransformParameterType.bitRate,title:"比特率",name:bitText),
|
||||
(type:CCTransformParameterType.formatVideoEncoding,title:"视频编码格式",name:codecTypeText),
|
||||
(type:CCTransformParameterType.horizontalDialogueAdjustment,title:"水平视差调整",name:"0")]
|
||||
(type:CCTransformParameterType.format3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HSBS"),
|
||||
(type:CCTransformParameterType.resolution,title:NSLocalizedString("分辨率", comment: ""),name:presetText),
|
||||
(type:CCTransformParameterType.bitRate,title:NSLocalizedString("比特率", comment: ""),name:bitText),
|
||||
(type:CCTransformParameterType.formatVideoEncoding,title:NSLocalizedString("视频编码格式", comment: ""),name:codecTypeText),
|
||||
(type:CCTransformParameterType.horizontalDialogueAdjustment,title:NSLocalizedString("水平视差调整", comment: ""),name:"0")]
|
||||
|
||||
|
||||
switch format {
|
||||
case .HSBS:
|
||||
popData = [
|
||||
(type:CCTransformParameterType.format3D,title:"3D 格式",name:"3D HSBS"),
|
||||
(type:CCTransformParameterType.resolution,title:"分辨率",name:presetText),
|
||||
(type:CCTransformParameterType.bitRate,title:"比特率",name:bitText),
|
||||
(type:CCTransformParameterType.formatVideoEncoding,title:"视频编码格式",name:codecTypeText),
|
||||
(type:CCTransformParameterType.horizontalDialogueAdjustment,title:"水平视差调整",name:"0")]
|
||||
(type:CCTransformParameterType.format3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HSBS"),
|
||||
(type:CCTransformParameterType.resolution,title:NSLocalizedString("分辨率", comment: ""),name:presetText),
|
||||
(type:CCTransformParameterType.bitRate,title:NSLocalizedString("比特率", comment: ""),name:bitText),
|
||||
(type:CCTransformParameterType.formatVideoEncoding,title:NSLocalizedString("视频编码格式", comment: ""),name:codecTypeText),
|
||||
(type:CCTransformParameterType.horizontalDialogueAdjustment,title:NSLocalizedString("水平视差调整", comment: ""),name:"0")]
|
||||
|
||||
break
|
||||
case .FSBS:
|
||||
popData = [
|
||||
(type:CCTransformParameterType.format3D,title:"3D 格式",name:"3D FSBS"),
|
||||
(type:CCTransformParameterType.resolution,title:"分辨率",name:presetText),
|
||||
(type:CCTransformParameterType.bitRate,title:"比特率",name:bitText),
|
||||
(type:CCTransformParameterType.formatVideoEncoding,title:"视频编码格式",name:codecTypeText)]
|
||||
(type:CCTransformParameterType.format3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D FSBS"),
|
||||
(type:CCTransformParameterType.resolution,title:NSLocalizedString("分辨率", comment: ""),name:presetText),
|
||||
(type:CCTransformParameterType.bitRate,title:NSLocalizedString("比特率", comment: ""),name:bitText),
|
||||
(type:CCTransformParameterType.formatVideoEncoding,title:NSLocalizedString("视频编码格式", comment: ""),name:codecTypeText)]
|
||||
|
||||
break
|
||||
case .HOU:
|
||||
popData = [
|
||||
(type:CCTransformParameterType.format3D,title:"3D 格式",name:"3D HOU"),
|
||||
(type:CCTransformParameterType.resolution,title:"分辨率",name:presetText),
|
||||
(type:CCTransformParameterType.bitRate,title:"比特率",name:bitText),
|
||||
(type:CCTransformParameterType.formatVideoEncoding,title:"视频编码格式",name:codecTypeText),
|
||||
(type:CCTransformParameterType.horizontalDialogueAdjustment,title:"水平视差调整",name:"0")]
|
||||
(type:CCTransformParameterType.format3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HOU"),
|
||||
(type:CCTransformParameterType.resolution,title:NSLocalizedString("分辨率", comment: ""),name:presetText),
|
||||
(type:CCTransformParameterType.bitRate,title:NSLocalizedString("比特率", comment: ""),name:bitText),
|
||||
(type:CCTransformParameterType.formatVideoEncoding,title:NSLocalizedString("视频编码格式", comment: ""),name:codecTypeText),
|
||||
(type:CCTransformParameterType.horizontalDialogueAdjustment,title:NSLocalizedString("水平视差调整", comment: ""),name:"0")]
|
||||
|
||||
break
|
||||
case .FOU:
|
||||
popData = [
|
||||
(type:CCTransformParameterType.format3D,title:"3D 格式",name:"3D FOU"),
|
||||
(type:CCTransformParameterType.resolution,title:"分辨率",name:presetText),
|
||||
(type:CCTransformParameterType.bitRate,title:"比特率",name:bitText),
|
||||
(type:CCTransformParameterType.formatVideoEncoding,title:"视频编码格式",name:codecTypeText)]
|
||||
(type:CCTransformParameterType.format3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D FOU"),
|
||||
(type:CCTransformParameterType.resolution,title:NSLocalizedString("分辨率", comment: ""),name:presetText),
|
||||
(type:CCTransformParameterType.bitRate,title:NSLocalizedString("比特率", comment: ""),name:bitText),
|
||||
(type:CCTransformParameterType.formatVideoEncoding,title:NSLocalizedString("视频编码格式", comment: ""),name:codecTypeText)]
|
||||
|
||||
break
|
||||
}
|
||||
@ -418,23 +420,23 @@ class VRVideoTransformController: BaseController {
|
||||
3D HOU(半高上下格式)
|
||||
3D FOU(全高上下格式)
|
||||
*/
|
||||
let action1 = UIAlertAction(title: "3D HSBS(半宽左右格式)" , style: .default) { (action:UIAlertAction) in
|
||||
self.selected3DFormat = .HSBS
|
||||
self.according3DFormatShowList(format: .HSBS)
|
||||
let action1 = UIAlertAction(title: NSLocalizedString("3D HSBS(半宽左右格式)" , comment: ""), style: .default) {[weak self] (action:UIAlertAction) in
|
||||
self?.selected3DFormat = .HSBS
|
||||
self?.according3DFormatShowList(format: .HSBS)
|
||||
}
|
||||
let action2 = UIAlertAction(title: "3D FSBS(全宽左右格式)" , style: .default) { (action:UIAlertAction) in
|
||||
self.selected3DFormat = .FSBS
|
||||
self.according3DFormatShowList(format: .FSBS)
|
||||
let action2 = UIAlertAction(title: NSLocalizedString("3D FSBS(全宽左右格式)", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in
|
||||
self?.selected3DFormat = .FSBS
|
||||
self?.according3DFormatShowList(format: .FSBS)
|
||||
}
|
||||
let action3 = UIAlertAction(title: "3D HOU(半高上下格式)" , style: .default) { (action:UIAlertAction) in
|
||||
self.selected3DFormat = .HOU
|
||||
self.according3DFormatShowList(format: .HOU)
|
||||
let action3 = UIAlertAction(title: NSLocalizedString("3D HOU(半高上下格式)", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in
|
||||
self?.selected3DFormat = .HOU
|
||||
self?.according3DFormatShowList(format: .HOU)
|
||||
}
|
||||
let action4 = UIAlertAction(title: "3D FOU(全高上下格式)" , style: .default) { (action:UIAlertAction) in
|
||||
self.selected3DFormat = .FOU
|
||||
self.according3DFormatShowList(format: .FOU)
|
||||
let action4 = UIAlertAction(title: NSLocalizedString("3D FOU(全高上下格式)", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in
|
||||
self?.selected3DFormat = .FOU
|
||||
self?.according3DFormatShowList(format: .FOU)
|
||||
}
|
||||
let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil)
|
||||
let cancelAction = UIAlertAction(title: NSLocalizedString("取消", comment: ""), style: .cancel, handler: nil)
|
||||
alert.addAction(action1)
|
||||
alert.addAction(action2)
|
||||
alert.addAction(action3)
|
||||
@ -452,31 +454,31 @@ class VRVideoTransformController: BaseController {
|
||||
4K 的分辨率为 3840x2160 像素。1
|
||||
*/
|
||||
|
||||
let action1 = UIAlertAction(title: "原始" , style: .default) { (action:UIAlertAction) in
|
||||
self.selectedPreset = .mvhevc1440x1440
|
||||
self.videoWidth = 1440
|
||||
self.videoHeight = 1440
|
||||
self.according3DFormatShowList(format: self.selected3DFormat)
|
||||
let action1 = UIAlertAction(title: NSLocalizedString("原始", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in
|
||||
self?.selectedPreset = .mvhevc1440x1440
|
||||
self?.videoWidth = 1440
|
||||
self?.videoHeight = 1440
|
||||
self?.according3DFormatShowList(format: self!.selected3DFormat)
|
||||
}
|
||||
let action2 = UIAlertAction(title: "4K" , style: .default) { (action:UIAlertAction) in
|
||||
self.selectedPreset = .hevc3840x2160
|
||||
self.videoWidth = 3840
|
||||
self.videoHeight = 2160
|
||||
self.according3DFormatShowList(format: self.selected3DFormat)
|
||||
let action2 = UIAlertAction(title: "4K" , style: .default) {[weak self] (action:UIAlertAction) in
|
||||
self!.selectedPreset = .hevc3840x2160
|
||||
self!.videoWidth = 3840
|
||||
self!.videoHeight = 2160
|
||||
self!.according3DFormatShowList(format: self!.selected3DFormat)
|
||||
}
|
||||
let action3 = UIAlertAction(title: "1080p" , style: .default) { (action:UIAlertAction) in
|
||||
self.selectedPreset = .hevc1920x1080
|
||||
self.videoWidth = 1920
|
||||
self.videoHeight = 1080
|
||||
self.according3DFormatShowList(format: self.selected3DFormat)
|
||||
let action3 = UIAlertAction(title: "1080p" , style: .default) {[weak self] (action:UIAlertAction) in
|
||||
self!.selectedPreset = .hevc1920x1080
|
||||
self!.videoWidth = 1920
|
||||
self!.videoHeight = 1080
|
||||
self!.according3DFormatShowList(format: self!.selected3DFormat)
|
||||
}
|
||||
let action4 = UIAlertAction(title: "720p" , style: .default) { (action:UIAlertAction) in
|
||||
self.selectedPreset = .preset1280x720
|
||||
self.videoWidth = 1280
|
||||
self.videoHeight = 720
|
||||
self.according3DFormatShowList(format: self.selected3DFormat)
|
||||
let action4 = UIAlertAction(title: "720p" , style: .default) {[weak self] (action:UIAlertAction) in
|
||||
self!.selectedPreset = .preset1280x720
|
||||
self!.videoWidth = 1280
|
||||
self!.videoHeight = 720
|
||||
self!.according3DFormatShowList(format: self!.selected3DFormat)
|
||||
}
|
||||
let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil)
|
||||
let cancelAction = UIAlertAction(title: NSLocalizedString("取消", comment: ""), style: .cancel, handler: nil)
|
||||
alert.addAction(action1)
|
||||
alert.addAction(action2)
|
||||
alert.addAction(action3)
|
||||
@ -495,23 +497,23 @@ class VRVideoTransformController: BaseController {
|
||||
低(约为原视频25%)
|
||||
|
||||
*/
|
||||
let action1 = UIAlertAction(title: "最佳" , style: .default) { (action:UIAlertAction) in
|
||||
self.selectedBitsPerPixel = .best
|
||||
self.according3DFormatShowList(format: self.selected3DFormat)
|
||||
let action1 = UIAlertAction(title: NSLocalizedString("最佳", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in
|
||||
self!.selectedBitsPerPixel = .best
|
||||
self!.according3DFormatShowList(format: self!.selected3DFormat)
|
||||
}
|
||||
let action2 = UIAlertAction(title: "高" , style: .default) { (action:UIAlertAction) in
|
||||
self.selectedBitsPerPixel = .high
|
||||
self.according3DFormatShowList(format: self.selected3DFormat)
|
||||
let action2 = UIAlertAction(title: NSLocalizedString("高", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in
|
||||
self!.selectedBitsPerPixel = .high
|
||||
self!.according3DFormatShowList(format: self!.selected3DFormat)
|
||||
}
|
||||
let action3 = UIAlertAction(title: "中" , style: .default) { (action:UIAlertAction) in
|
||||
self.selectedBitsPerPixel = .medium
|
||||
self.according3DFormatShowList(format: self.selected3DFormat)
|
||||
let action3 = UIAlertAction(title: NSLocalizedString("中", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in
|
||||
self!.selectedBitsPerPixel = .medium
|
||||
self!.according3DFormatShowList(format: self!.selected3DFormat)
|
||||
}
|
||||
let action4 = UIAlertAction(title: "低" , style: .default) { (action:UIAlertAction) in
|
||||
self.selectedBitsPerPixel = .low
|
||||
self.according3DFormatShowList(format: self.selected3DFormat)
|
||||
let action4 = UIAlertAction(title: NSLocalizedString("低", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in
|
||||
self!.selectedBitsPerPixel = .low
|
||||
self!.according3DFormatShowList(format: self!.selected3DFormat)
|
||||
}
|
||||
let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil)
|
||||
let cancelAction = UIAlertAction(title: NSLocalizedString("取消", comment: ""), style: .cancel, handler: nil)
|
||||
alert.addAction(action1)
|
||||
alert.addAction(action2)
|
||||
alert.addAction(action3)
|
||||
@ -528,17 +530,17 @@ class VRVideoTransformController: BaseController {
|
||||
H.264
|
||||
|
||||
*/
|
||||
let action1 = UIAlertAction(title: "H.265" , style: .default) { (action:UIAlertAction) in
|
||||
let action1 = UIAlertAction(title: "H.265" , style: .default) {[weak self] (action:UIAlertAction) in
|
||||
//HEVC 也被称为H.265和MPEG-H Part 2
|
||||
self.selectedCodecType = AVVideoCodecType.hevc
|
||||
self.according3DFormatShowList(format: self.selected3DFormat)
|
||||
self!.selectedCodecType = AVVideoCodecType.hevc
|
||||
self!.according3DFormatShowList(format: self!.selected3DFormat)
|
||||
}
|
||||
let action2 = UIAlertAction(title: "H.264" , style: .default) { (action:UIAlertAction) in
|
||||
self.selectedCodecType = AVVideoCodecType.h264
|
||||
self.according3DFormatShowList(format: self.selected3DFormat)
|
||||
let action2 = UIAlertAction(title: "H.264" , style: .default) { [weak self] (action:UIAlertAction) in
|
||||
self!.selectedCodecType = AVVideoCodecType.h264
|
||||
self!.according3DFormatShowList(format: self!.selected3DFormat)
|
||||
}
|
||||
|
||||
let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil)
|
||||
let cancelAction = UIAlertAction(title: NSLocalizedString("取消", comment: ""), style: .cancel, handler: nil)
|
||||
alert.addAction(action1)
|
||||
alert.addAction(action2)
|
||||
alert.addAction(cancelAction)
|
||||
@ -567,7 +569,7 @@ extension VRVideoTransformController {
|
||||
|
||||
let videoOriginalAsset:AVAsset? = AVAsset(url: sourceVideoURL!)
|
||||
if !ZZHHelper.isSpatialVideo(asset: videoOriginalAsset!) {
|
||||
SVProgressHUD.showInfo(withStatus: "非空间视频不能转码")
|
||||
SVProgressHUD.showInfo(withStatus: NSLocalizedString("非空间视频不能转码", comment: ""))
|
||||
return
|
||||
}
|
||||
|
||||
@ -630,7 +632,7 @@ extension VRVideoTransformController {
|
||||
guard let exportSession = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetPassthrough) else {
|
||||
// print("Failed to create export session")
|
||||
DispatchQueue.main.async {
|
||||
self.progressView?.updateInfo(title: "转码失败", desc: "导出会话创建失败")
|
||||
self.progressView?.updateInfo(title: NSLocalizedString("转码失败", comment: ""), desc: NSLocalizedString("导出会话创建失败", comment: ""))
|
||||
}
|
||||
|
||||
completion(nil)
|
||||
@ -643,7 +645,7 @@ extension VRVideoTransformController {
|
||||
guard let assetTrack = asset.tracks(withMediaType: .video).first else {
|
||||
// print("Failed to get video track from asset")
|
||||
DispatchQueue.main.async {
|
||||
self.progressView?.updateInfo(title: "转码失败", desc: "未能成功加载视频轨道")
|
||||
self.progressView?.updateInfo(title: NSLocalizedString("转码失败", comment: ""), desc: NSLocalizedString("未能成功加载视频轨道", comment: ""))
|
||||
}
|
||||
completion(nil)
|
||||
return
|
||||
@ -654,7 +656,7 @@ extension VRVideoTransformController {
|
||||
} catch {
|
||||
// print("Failed to insert video track into composition")
|
||||
DispatchQueue.main.async {
|
||||
self.progressView?.updateInfo(title: "转码失败", desc: "未能成功插入视频轨道")
|
||||
self.progressView?.updateInfo(title: NSLocalizedString("转码失败", comment: ""), desc: NSLocalizedString("未能成功插入视频轨道", comment: ""))
|
||||
}
|
||||
completion(nil)
|
||||
return
|
||||
@ -711,7 +713,7 @@ extension VRVideoTransformController {
|
||||
// SVProgressHUD.showInfo(withStatus: "视频转码失败")
|
||||
// }
|
||||
DispatchQueue.main.async {
|
||||
self.progressView?.updateInfo(title: "转码失败", desc: "创建媒体写入失败")
|
||||
self.progressView?.updateInfo(title: NSLocalizedString("转码失败", comment: ""), desc: NSLocalizedString("创建媒体写入失败", comment: ""))
|
||||
}
|
||||
completion(nil)
|
||||
return
|
||||
@ -726,12 +728,12 @@ extension VRVideoTransformController {
|
||||
exportSession.outputFileType = AVFileType.mov
|
||||
exportSession.outputURL = outputURL
|
||||
|
||||
exportSession.exportAsynchronously { [self] in
|
||||
exportSession.exportAsynchronously { [weak self] in
|
||||
switch exportSession.status {
|
||||
case .completed:
|
||||
let exportedAsset = AVAsset(url: outputURL)
|
||||
DispatchQueue.main.async {
|
||||
self.saveVideoToAlbum(url: outputURL)
|
||||
self?.saveVideoToAlbum(url: outputURL)
|
||||
completion(exportedAsset)
|
||||
}
|
||||
case .failed:
|
||||
@ -739,13 +741,13 @@ extension VRVideoTransformController {
|
||||
print("Export failed with error: \(error.localizedDescription)")
|
||||
DispatchQueue.main.async {
|
||||
// SVProgressHUD.showInfo(withStatus: "视频导出失败:\(error.localizedDescription)")
|
||||
self.progressView?.updateInfo(title: "转码完成", desc: "导出内容失败")
|
||||
self?.progressView?.updateInfo(title: NSLocalizedString("转码完成", comment: ""), desc: NSLocalizedString("导出内容失败", comment: ""))
|
||||
}
|
||||
} else {
|
||||
print("Export failed")
|
||||
DispatchQueue.main.async {
|
||||
// SVProgressHUD.showInfo(withStatus: "视频导出失败")
|
||||
self.progressView?.updateInfo(title: "转码完成", desc: "导出内容失败")
|
||||
self?.progressView?.updateInfo(title: NSLocalizedString("转码完成", comment: ""), desc: NSLocalizedString("导出内容失败", comment: ""))
|
||||
}
|
||||
|
||||
}
|
||||
@ -754,7 +756,7 @@ extension VRVideoTransformController {
|
||||
print("Export cancelled")
|
||||
DispatchQueue.main.async {
|
||||
// SVProgressHUD.showInfo(withStatus: "视频导出失败 cancelled")
|
||||
self.progressView?.updateInfo(title: "转码完成", desc: "导出内容失败")
|
||||
self?.progressView?.updateInfo(title: NSLocalizedString("转码完成", comment: ""), desc: NSLocalizedString("导出内容失败", comment: ""))
|
||||
}
|
||||
completion(nil)
|
||||
default:
|
||||
@ -767,18 +769,18 @@ extension VRVideoTransformController {
|
||||
func saveVideoToAlbum(url: URL) {
|
||||
PHPhotoLibrary.shared().performChanges {
|
||||
PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: url)
|
||||
} completionHandler: { success, error in
|
||||
} completionHandler: {[weak self] success, error in
|
||||
if success {
|
||||
print("Video saved to album")
|
||||
DispatchQueue.main.async {
|
||||
//SVProgressHUD.showSuccess(withStatus: "视频转码成功,已保存到相册")
|
||||
self.progressView?.updateInfo(title: "转码完成", desc: "导出内容已存储到相册中")
|
||||
self?.progressView?.updateInfo(title: NSLocalizedString("转码完成", comment: ""), desc: NSLocalizedString("导出内容已存储到相册中", comment: ""))
|
||||
}
|
||||
} else {
|
||||
print("Failed to save video to album: \(error?.localizedDescription ?? "Unknown error")")
|
||||
DispatchQueue.main.async {
|
||||
//SVProgressHUD.showInfo(withStatus: "视频转码失败:\(error?.localizedDescription ?? "Unknown error")")
|
||||
self.progressView?.updateInfo(title: "转码完成", desc: "导出内容失败")
|
||||
self?.progressView?.updateInfo(title: NSLocalizedString("转码完成", comment: ""), desc: NSLocalizedString("导出内容失败", comment: ""))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -17,8 +17,10 @@ class PlayByTransferConvertor {
|
||||
func convertVideo(asset:AVAsset, assetOutput:AVAssetReaderTrackOutput,type:SpatialType,time: CMTime)->(CIImage?) {
|
||||
var newpb:CIImage? = nil
|
||||
while let nextSampleBuffer = assetOutput.copyNextSampleBuffer() {
|
||||
print("PlayByTransferConvertor while")
|
||||
let presentationTime = CMSampleBufferGetPresentationTimeStamp(nextSampleBuffer)
|
||||
if presentationTime == time {
|
||||
print("PlayByTransferConvertor while break")
|
||||
guard let taggedBuffers = nextSampleBuffer.taggedBuffers else { break }
|
||||
|
||||
let leftEyeBuffer = taggedBuffers.first(where: {
|
||||
@ -68,6 +70,7 @@ class PlayByTransferConvertor {
|
||||
break
|
||||
}
|
||||
}
|
||||
CMSampleBufferInvalidate(nextSampleBuffer)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
@ -157,10 +157,10 @@ class CCSpaceAlbumFilterPopView2: UIView {
|
||||
|
||||
lazy var cancelButton: UIButton = {
|
||||
let button = UIButton.init()
|
||||
button.setTitle("取消", for: .normal)
|
||||
button.setTitle(NSLocalizedString("取消", comment: ""), for: .normal)
|
||||
button.setTitleColor(UIColor(red: 165.0/255, green: 137.0/255, blue: 1, alpha: 1), for: .normal)
|
||||
button.titleLabel?.font = KFont_Medium(16)
|
||||
button.titleLabel?.adjustsFontSizeToFitWidth = true
|
||||
button.titleLabel?.font = UIFont.systemFont(ofSize: 16)//KFont_Medium(16)
|
||||
// button.titleLabel?.adjustsFontSizeToFitWidth = true
|
||||
button.contentHorizontalAlignment = .center
|
||||
button.addTarget(self, action: #selector(cancelAction), for: .touchUpInside)
|
||||
|
||||
@ -196,7 +196,7 @@ class CCSpaceAlbumFilterPopView2: UIView {
|
||||
}()
|
||||
|
||||
lazy var segmentBtn:UISegmentedControl = {
|
||||
let sbtn = UISegmentedControl.init(items: ["全部","图片","视频"])
|
||||
let sbtn = UISegmentedControl.init(items: [NSLocalizedString("全部", comment: ""),NSLocalizedString("图片", comment: ""),NSLocalizedString("视频", comment: "")])
|
||||
sbtn.addTarget(self, action: #selector(filterAction(btn:)), for: .valueChanged)
|
||||
sbtn.setTitleTextAttributes([NSAttributedString.Key.foregroundColor:UIColor.white], for: .normal)
|
||||
sbtn.setTitleTextAttributes([NSAttributedString.Key.foregroundColor:UIColor.black], for: .selected)
|
||||
@ -244,7 +244,7 @@ class CCSpaceAlbumFilterPopView2: UIView {
|
||||
cancelButton.snp.makeConstraints { (make) in
|
||||
make.leading.equalTo(topView.snp.leading).offset(16)
|
||||
make.centerY.equalTo(topView.snp.centerY)
|
||||
make.width.equalTo(32)
|
||||
make.width.equalTo(56)
|
||||
make.height.equalTo(24)
|
||||
}
|
||||
|
||||
@ -275,7 +275,7 @@ class CCSpaceAlbumFilterPopView2: UIView {
|
||||
self?.reloadData()
|
||||
break
|
||||
default:
|
||||
SVProgressHUD.showError(withStatus: "无法访问相册,请前往设置中开发访问授权")
|
||||
SVProgressHUD.showError(withStatus: NSLocalizedString("无法访问相册,请前往设置中开发访问授权", comment: ""))
|
||||
break
|
||||
}
|
||||
}
|
||||
@ -284,7 +284,7 @@ class CCSpaceAlbumFilterPopView2: UIView {
|
||||
case .restricted:
|
||||
break
|
||||
case .denied:
|
||||
SVProgressHUD.showError(withStatus: "无法访问相册,请前往设置中开发访问授权")
|
||||
SVProgressHUD.showError(withStatus: NSLocalizedString("无法访问相册,请前往设置中开发访问授权", comment: ""))
|
||||
break
|
||||
case .authorized,.limited:
|
||||
reloadData()
|
||||
@ -450,7 +450,7 @@ extension CCSpaceAlbumFilterPopView2:UICollectionViewDataSource, UICollectionVie
|
||||
|
||||
if model.assetType == .image {
|
||||
|
||||
cell.frameCountLabel.text = "空间"
|
||||
cell.frameCountLabel.text = NSLocalizedString("空间", comment: "")
|
||||
cell.frameCountLabel.isHidden = true
|
||||
cell.timeLabel.isHidden = true
|
||||
}else if model.assetType == .video {
|
||||
|
||||
@ -86,9 +86,9 @@ class CCMineView: UIView,UITableViewDelegate,UITableViewDataSource{
|
||||
// "name":"隐私政策"]]
|
||||
|
||||
let arr = [["img":"Icon_Menu_all_Icon_Connect",
|
||||
"name":"联系我们"],
|
||||
"name":NSLocalizedString(NSLocalizedString("联系我们", comment: ""), comment: "")],
|
||||
["img":"Icon_Menu_all_Icon_Privacy",
|
||||
"name":"隐私政策"]]
|
||||
"name":NSLocalizedString(NSLocalizedString("隐私政策", comment: ""), comment: "")]]
|
||||
|
||||
|
||||
datas.addObjects(from: arr)
|
||||
|
||||
@ -174,10 +174,10 @@ public class CCSpatialDisplayTypeView: UIView {
|
||||
|
||||
showBottomView.isHidden = !isShow
|
||||
showBottomTextLabel.text = showText
|
||||
if showText == "结束串流" {
|
||||
if showText == NSLocalizedString("结束串流", comment: "") {
|
||||
showBottomTextLabel.backgroundColor = UIColor(hexString: "#D23027")
|
||||
|
||||
}else if showText == "开始串流" {
|
||||
}else if showText == NSLocalizedString("开始串流", comment: "") {
|
||||
showBottomTextLabel.backgroundColor = UIColor(hexString: "#03A449")
|
||||
}
|
||||
}
|
||||
|
||||
@ -34,7 +34,8 @@ class CCSpatialPlayView: UIView,UITableViewDelegate,UITableViewDataSource{
|
||||
// self.backgroundColor = UIColor.colorWithRGB(_r: 28, _g: 28, _b: 29)
|
||||
|
||||
|
||||
self.mTableView = UITableView.init(frame: self.bounds, style: UITableView.Style.grouped)
|
||||
self.mTableView = UITableView.init(frame: self.bounds, style: UITableView.Style.insetGrouped)
|
||||
|
||||
self.addSubview(self.mTableView!)
|
||||
self.mTableView!.delegate = (self as UITableViewDelegate)
|
||||
self.mTableView!.dataSource = (self as UITableViewDataSource)
|
||||
@ -44,8 +45,8 @@ class CCSpatialPlayView: UIView,UITableViewDelegate,UITableViewDataSource{
|
||||
self.mTableView!.sectionHeaderHeight = 0
|
||||
self.mTableView!.sectionFooterHeight = 0
|
||||
self.mTableView!.estimatedRowHeight = 70
|
||||
self.mTableView?.contentInset = UIEdgeInsets.init(top: 0, left: 0, bottom: 0, right: 0)
|
||||
self.mTableView!.scrollIndicatorInsets = self.mTableView!.contentInset
|
||||
// self.mTableView?.contentInset = UIEdgeInsets.init(top: 0, left: 0, bottom: 0, right: 0)
|
||||
// self.mTableView!.scrollIndicatorInsets = self.mTableView!.contentInset
|
||||
self.mTableView!.separatorStyle = UITableViewCell.SeparatorStyle.none
|
||||
|
||||
mTableView!.register(CCSpatialPlayCell1.classForCoder(), forCellReuseIdentifier: CCSpatialPlayCell1Id)
|
||||
@ -67,11 +68,11 @@ class CCSpatialPlayView: UIView,UITableViewDelegate,UITableViewDataSource{
|
||||
// "name":"0"]]
|
||||
|
||||
let popData = [
|
||||
(type:CCTransformParameterType.format3D,title:"3D 格式",name:"3D HSBS"),
|
||||
(type:CCTransformParameterType.resolution,title:"分辨率",name:"1080P"),
|
||||
(type:CCTransformParameterType.bitRate,title:"比特率",name:"最佳"),
|
||||
(type:CCTransformParameterType.formatVideoEncoding,title:"视频编码格式",name:"H.265"),
|
||||
(type:CCTransformParameterType.horizontalDialogueAdjustment,title:"水平视差调整",name:"0")]
|
||||
(type:CCTransformParameterType.format3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HSBS"),
|
||||
(type:CCTransformParameterType.resolution,title:NSLocalizedString("分辨率", comment: ""),name:"1080P"),
|
||||
(type:CCTransformParameterType.bitRate,title:NSLocalizedString("比特率", comment: ""),name:NSLocalizedString("最佳", comment: "")),
|
||||
(type:CCTransformParameterType.formatVideoEncoding,title:NSLocalizedString("视频编码格式", comment: ""),name:"H.265"),
|
||||
(type:CCTransformParameterType.horizontalDialogueAdjustment,title:NSLocalizedString("水平视差调整", comment: ""),name:"0")]
|
||||
|
||||
datas = popData
|
||||
self.mTableView!.reloadData()
|
||||
@ -114,6 +115,7 @@ class CCSpatialPlayView: UIView,UITableViewDelegate,UITableViewDataSource{
|
||||
}else{
|
||||
cell.mLine?.isHidden = false
|
||||
}
|
||||
cell.backgroundColor = UIColor.hexStringToColor(hexString: "#1F1E20")
|
||||
return cell
|
||||
}else{
|
||||
let cell:CCSpatialPlayCell2 = tableView.dequeueReusableCell(withIdentifier: CCSpatialPlayCell2Id)! as! CCSpatialPlayCell2
|
||||
@ -125,6 +127,7 @@ class CCSpatialPlayView: UIView,UITableViewDelegate,UITableViewDataSource{
|
||||
}else{
|
||||
cell.mLine?.isHidden = false
|
||||
}
|
||||
cell.backgroundColor = UIColor.hexStringToColor(hexString: "#1F1E20")
|
||||
return cell
|
||||
}
|
||||
|
||||
|
||||
@ -30,7 +30,7 @@ class CCTransformProgressPopView: UIView {
|
||||
label.backgroundColor = UIColor.clear
|
||||
label.font = KFont_Regular(18)
|
||||
label.textColor = KTextColor_White
|
||||
label.text = "导出中..."
|
||||
label.text = NSLocalizedString("导出中...", comment: "")
|
||||
return label
|
||||
}()
|
||||
|
||||
@ -39,7 +39,7 @@ class CCTransformProgressPopView: UIView {
|
||||
label.backgroundColor = UIColor.clear
|
||||
label.font = KFont_Regular(14)
|
||||
label.textColor = UIColor(hexString: "#9B9B9C")
|
||||
label.text = "请不要锁屏或者退出APP"
|
||||
label.text = NSLocalizedString("请不要锁屏或者退出APP", comment: "")
|
||||
return label
|
||||
}()
|
||||
|
||||
@ -70,7 +70,7 @@ class CCTransformProgressPopView: UIView {
|
||||
button.clipsToBounds = true
|
||||
button.titleLabel?.font = KFont_Medium(14)
|
||||
button.titleLabel?.textColor = KTextColor_White
|
||||
button.setTitle("转码导出", for: .normal)
|
||||
button.setTitle(NSLocalizedString("转码导出", comment: ""), for: .normal)
|
||||
button.setTitleColor(KTextColor_White, for: .normal)
|
||||
button.addTarget(self, action: #selector(transformButtonAction(_:)), for: .touchUpInside)
|
||||
|
||||
@ -88,7 +88,7 @@ class CCTransformProgressPopView: UIView {
|
||||
button.clipsToBounds = true
|
||||
button.titleLabel?.font = KFont_Medium(14)
|
||||
button.titleLabel?.textColor = KTextColor_White
|
||||
button.setTitle("回到首页", for: .normal)
|
||||
button.setTitle(NSLocalizedString("回到首页", comment: ""), for: .normal)
|
||||
button.setTitleColor(KTextColor_White, for: .normal)
|
||||
button.addTarget(self, action: #selector(closeButtonAction), for: .touchUpInside)
|
||||
|
||||
@ -159,8 +159,8 @@ class CCTransformProgressPopView: UIView {
|
||||
}
|
||||
|
||||
func resetUI() {
|
||||
titleLabel.text = "导出中..."
|
||||
detailLabel.text = "请不要锁屏或者退出APP"
|
||||
titleLabel.text = NSLocalizedString("导出中...", comment: "")
|
||||
detailLabel.text = NSLocalizedString("请不要锁屏或者退出APP", comment: "")
|
||||
progressLabel.text = "0%"
|
||||
transformButton.isHidden = true
|
||||
closeButton.isHidden = true
|
||||
@ -171,18 +171,18 @@ class CCTransformProgressPopView: UIView {
|
||||
func updateProgress(value:Float) {
|
||||
|
||||
if value > 0.98 {
|
||||
titleLabel.text = "转码完成"
|
||||
detailLabel.text = "正在导出内容至相册中"//"导出内容已存储到相册中"
|
||||
titleLabel.text = NSLocalizedString("转码完成", comment: "")
|
||||
detailLabel.text = NSLocalizedString("正在导出内容至相册中", comment: "")//"导出内容已存储到相册中"
|
||||
progressLabel.isHidden = true
|
||||
transformButton.setTitle("继续转码", for: .normal)
|
||||
transformButton.setTitle(NSLocalizedString("继续转码", comment: ""), for: .normal)
|
||||
transformButton.isHidden = false
|
||||
closeButton.isHidden = false
|
||||
progressView.isHidden = true
|
||||
iconImageView.image = UIImage.init(named: "asset_exported")
|
||||
|
||||
}else{
|
||||
titleLabel.text = "转码中..."
|
||||
detailLabel.text = "请不要锁屏或者退出APP"
|
||||
titleLabel.text = NSLocalizedString("处理中...", comment: "")
|
||||
detailLabel.text = NSLocalizedString("请不要锁屏或者退出APP", comment: "")
|
||||
progressLabel.text = String.init(format: "%.f%%", value*100)
|
||||
transformButton.isHidden = true
|
||||
closeButton.isHidden = true
|
||||
|
||||
@ -1,2 +1,79 @@
|
||||
"siteUrl" = "https://ingenious-taro-hvwxmk.mystrikingly.com";
|
||||
"home_card" = "Card_en";
|
||||
"home_card_1" = "Card_1_en";
|
||||
"home_card_2" = "Card_2_en";
|
||||
"未连接VR设备" = "Not Connected";
|
||||
"隐私政策" = "Privacy Policy";
|
||||
"联系我们" = "Contact Us";
|
||||
"请先前往系统设置配置发送的邮箱信息" = "Please Configure Email in System Settings First";
|
||||
"空间相簿" = "Spatial Album";
|
||||
"照片图库" = "Photo Gallery";
|
||||
"Tips.1 拍摄空间照片以及视频" = "Tips.1 Capture Spatial Photos and Videos";
|
||||
"Tips.2 视频转码" = "Tips.2 Video Transcoding";
|
||||
"Tips.3 直连VR设备" = "Tips.3 Directly Connect to VR Device";
|
||||
"一键拍摄空间格式的照片以及视频,留住美好瞬间" = "One-click Capture of Spatial Photos and Videos, Preserve Wonderful Moments";
|
||||
"可以将任意格式视频转码为 VR 或 3D 格式" = "Transcode Any Video to VR or 3D Format";
|
||||
"可以通过链接VR设备,直接观看转码内容" = "Watch Transcoded Content Directly by Linking VR Device";
|
||||
"已连接外部设备" = "Device Connected";
|
||||
"平行眼" = "Parallel View";
|
||||
"单眼2D" = "Mono 2D";
|
||||
|
||||
"红蓝立体" = "Red-Blue 3D";
|
||||
"交叉眼" = "Cross-Eye";
|
||||
"图片转码" = "Transcoding";
|
||||
"转码导出" = "Transcoding Export";
|
||||
"格式" = "Format";
|
||||
"3D 格式" = "3D Format";
|
||||
"这不是一张空间图片,无法进行转码" = "This is Not a Spatial Image, Cannot Transcode";
|
||||
"导出相册失败" = "Export to Album Failed";
|
||||
"请查看相册权限" = "Please Check Album Permissions";
|
||||
"转码完成" = "Transcoding Complete";
|
||||
"导出内容已存储到相册中" = "Exported Content Stored in Album";
|
||||
"3D HSBS(半宽左右格式)" = "3D HSBS (Half-width Side-by-Side)";
|
||||
"3D FSBS(全宽左右格式)" = "3D FSBS (Full-width Side-by-Side)";
|
||||
"3D HOU(半高上下格式)" = "3D HOU (Half Over-Under)";
|
||||
"3D FOU(全高上下格式)" = "3D FOU (Full Over-Under)";
|
||||
"取消" = "Cancel";
|
||||
"视频转码" = "Transcoding";
|
||||
"分辨率" = "Resolution";
|
||||
"原始" = "Original";
|
||||
"比特率" = "Bitrate";
|
||||
"最佳" = "Best";
|
||||
"高" = "High";
|
||||
"中" = "Medium";
|
||||
"低" = "Low";
|
||||
"视频编码格式" = "Video Encoding Format";
|
||||
"水平视差调整" = "Horizontal Parallax Adjustment";
|
||||
"非空间视频不能转码" = "Non-Spatial Video Cannot Be Transcoded";
|
||||
"转码失败" = "Transcoding Failed";
|
||||
"导出会话创建失败" = "Export Session Creation Failed";
|
||||
"未能成功加载视频轨道" = "Failed to Load Video Track";
|
||||
"未能成功插入视频轨道" = "Failed to Insert Video Track";
|
||||
"创建媒体写入失败" = "Media Writing Creation Failed";
|
||||
"导出内容失败" = "Export Content Failed";
|
||||
"导出内容已存储到相册中" = "Exported Content Stored in Album";
|
||||
"将iPhone旋转为横向" = "Rotate iPhone to Landscape";
|
||||
"拍照" = "Take Photo";
|
||||
"摄像" = "Record Video";
|
||||
"合成过程出现问题" = "Issues in Synthesis Process";
|
||||
"处理中..." = "Processing...";
|
||||
|
||||
"全部" = "All";
|
||||
"图片" = "Photos";
|
||||
"视频" = "Videos";
|
||||
"无法访问相册,请前往设置中开发访问授权" = "Unable to Access Album, Please Grant Access in Settings";
|
||||
"空间" = "Spatial";
|
||||
"导出中..." = "Exporting...";
|
||||
"请不要锁屏或者退出APP" = "Do Not Lock Screen or Exit APP";
|
||||
"回到首页" = "Back to Home";
|
||||
"正在导出内容至相册中" = "Exporting Content to Album";
|
||||
"继续转码" = "Continue Transcoding";
|
||||
"无法使用相机" = "Cannot Use Camera";
|
||||
"请前往[设置->隐私安全]中开启访问授权" = "Please Enable Access in [Settings->Privacy & Security]";
|
||||
"设置" = "Settings";
|
||||
|
||||
"结束串流" = "End Streaming";
|
||||
"外部串流中" = "External Streaming";
|
||||
"开始串流" = "Start Streaming";
|
||||
"空间图片保存失败" = "Spatial Photo Save Failed";
|
||||
"空间视频保存失败" = "Spatial Video Save Failed";
|
||||
|
||||
@ -1,2 +1,82 @@
|
||||
"siteUrl" = "https://www.wolai.com/9BZr3sEbpbXJEUorHEyAoP";
|
||||
"home_card" = "Card";
|
||||
"home_card_1" = "Card_1";
|
||||
"home_card_2" = "Card_2";
|
||||
"未连接VR设备" = "未连接VR设备";
|
||||
"隐私政策" = "隐私政策";
|
||||
"联系我们" = "联系我们";
|
||||
"请先前往系统设置配置发送的邮箱信息" = "请先前往系统设置配置发送的邮箱信息";
|
||||
"空间相簿" = "空间相簿";
|
||||
"照片图库" = "照片图库";
|
||||
"Tips.1 拍摄空间照片以及视频" = "Tips.1 拍摄空间照片以及视频";
|
||||
"Tips.2 视频转码" = "Tips.2 视频转码";
|
||||
"Tips.3 直连VR设备" = "Tips.3 直连VR设备";
|
||||
"一键拍摄空间格式的照片以及视频,留住美好瞬间" = "一键拍摄空间格式的照片以及视频,留住美好瞬间";
|
||||
"可以将任意格式视频转码为 VR 或 3D 格式" = "可以将任意格式视频转码为 VR 或 3D 格式";
|
||||
"可以通过链接VR设备,直接观看转码内容" = "可以通过链接VR设备,直接观看转码内容";
|
||||
"已连接外部设备" = "已连接外部设备";
|
||||
"平行眼" = "平行眼";
|
||||
"单眼2D" = "单眼2D";
|
||||
|
||||
|
||||
|
||||
"红蓝立体" = "红蓝立体";
|
||||
"交叉眼" = "交叉眼";
|
||||
"图片转码" = "图片转码";
|
||||
"转码导出" = "转码导出";
|
||||
"格式" = "格式";
|
||||
"3D 格式" = "3D 格式";
|
||||
"这不是一张空间图片,无法进行转码" = "这不是一张空间图片,无法进行转码";
|
||||
"导出相册失败" = "导出相册失败";
|
||||
"请查看相册权限" = "请查看相册权限";
|
||||
"转码完成" = "转码完成";
|
||||
"导出内容已存储到相册中" = "导出内容已存储到相册中";
|
||||
"3D HSBS(半宽左右格式)" = "3D HSBS(半宽左右格式)";
|
||||
"3D FSBS(全宽左右格式)" = "3D FSBS(全宽左右格式)";
|
||||
"3D HOU(半高上下格式)" = "3D HOU(半高上下格式)";
|
||||
"3D FOU(全高上下格式)" = "3D FOU(全高上下格式)";
|
||||
"取消" = "取消";
|
||||
"视频转码" = "视频转码";
|
||||
"分辨率" = "分辨率";
|
||||
"原始" = "原始";
|
||||
"比特率" = "比特率";
|
||||
"最佳" = "最佳";
|
||||
"高" = "高";
|
||||
"中" = "中";
|
||||
"低" = "低";
|
||||
"视频编码格式" = "视频编码格式";
|
||||
"水平视差调整" = "水平视差调整";
|
||||
"非空间视频不能转码" = "非空间视频不能转码";
|
||||
"转码失败" = "转码失败";
|
||||
"导出会话创建失败" = "导出会话创建失败";
|
||||
"未能成功加载视频轨道" = "未能成功加载视频轨道";
|
||||
"未能成功插入视频轨道" = "未能成功插入视频轨道";
|
||||
"创建媒体写入失败" = "创建媒体写入失败";
|
||||
"导出内容失败" = "导出内容失败";
|
||||
"导出内容已存储到相册中" = "导出内容已存储到相册中";
|
||||
"将iPhone旋转为横向" = "将iPhone旋转为横向";
|
||||
"拍照" = "拍照";
|
||||
"摄像" = "摄像";
|
||||
"合成过程出现问题" = "合成过程出现问题";
|
||||
"处理中..." = "处理中...";
|
||||
|
||||
"全部" = "全部";
|
||||
"图片" = "图片";
|
||||
"视频" = "视频";
|
||||
"无法访问相册,请前往设置中开发访问授权" = "无法访问相册,请前往设置中开发访问授权";
|
||||
"空间" = "空间";
|
||||
"导出中..." = "导出中...";
|
||||
"请不要锁屏或者退出APP" = "请不要锁屏或者退出APP";
|
||||
"回到首页" = "回到首页";
|
||||
"正在导出内容至相册中" = "正在导出内容至相册中";
|
||||
"继续转码" = "继续转码";
|
||||
"无法使用相机" = "无法使用相机";
|
||||
"请前往[设置->隐私安全]中开启访问授权" = "请前往[设置->隐私安全]中开启访问授权";
|
||||
"设置" = "设置";
|
||||
|
||||
"结束串流" = "结束串流";
|
||||
"外部串流中" = "外部串流中";
|
||||
"开始串流" = "开始串流";
|
||||
"空间图片保存失败" = "";
|
||||
"空间视频保存失败" = "";
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user