У меня есть код, в котором я добавляю метку таймера в качестве подпросмотра в своем представлении, но эта метка таймера, очевидно, остается только для просмотра, а не в видео, которое записывается и сохраняется. Я пробовал несколько вещей, но все было зря, есть ли у кого-нибудь идеи, как это можно сделать?
У меня есть код, в котором я добавляю метку таймера в качестве подпросмотра в своем представлении, но эта метка таймера, очевидно, остается только для просмотра, а не в видео, которое записывается и сохраняется. Я пробовал несколько вещей, но все было зря, есть ли у кого-нибудь идеи, как это можно сделать? [code] class ViewController: UIViewController, AVCaptureFileOutputRecordingDelegate { let captureSession = AVCaptureSession() let videoOutput = AVCaptureMovieFileOutput() var previewLayer: AVCaptureVideoPreviewLayer! var timer: Timer? var startTime: TimeInterval = 0 var isRecording = false var recordButton: UIButton! var timerLabel: UILabel! let player = AVQueuePlayer()
// Set up audio session for volume control do { try AVAudioSession.sharedInstance().setCategory(.playback) } catch { print("Error setting up audio session: \(error.localizedDescription)") } }
// Toggle recording state isRecording = !isRecording }
func startRecording() { // Start recording let timestamp = Date().timeIntervalSince1970 let filename = "video_\(Int(timestamp)).mov" let outputPath = NSTemporaryDirectory() + filename let outputURL = URL(fileURLWithPath: outputPath)
if videoOutput.isRecording { print("Already recording.") return } let dispatchGroup = DispatchGroup()
dispatchGroup.enter() // Enter the dispatch group before starting the recording
// Start recording DispatchQueue.global().async { self.videoOutput.startRecording(to: outputURL, recordingDelegate: self) print("Video is recording") dispatchGroup.leave() // Leave the dispatch group after starting the recording }
func checkPhotoLibraryAuthorization() { let status = PHPhotoLibrary.authorizationStatus() switch status { case .authorized: // User has authorized access to the photo library. print("Photo library access authorized.") case .notDetermined: // Request photo library access. PHPhotoLibrary.requestAuthorization { status in if status == .authorized { print("Photo library access granted.") } else { print("Photo library access denied.") } } case .denied, .restricted: // Photo library access is denied or restricted. print("Photo library access denied or restricted.") case .limited: // Handle the .limited case print("Photo library access limited.") @unknown default: print("Unknown authorization status.") } }
func checkCameraAuthorization() { let status = AVCaptureDevice.authorizationStatus(for: .video) switch status { case .authorized: // User has authorized access to the camera. print("Camera access authorized.") case .notDetermined: // Request camera access. AVCaptureDevice.requestAccess(for: .video) { granted in if granted { print("Camera access granted.") } else { print("Camera access denied.") } } case .denied, .restricted: // Camera access is denied or restricted. print("Camera access denied or restricted.") @unknown default: print("Unknown authorization status.") } }
func checkMicrophoneAuthoization() { let status = AVCaptureDevice.authorizationStatus(for: .audio) switch status { case .authorized: // User has authorized access to the microphone. print("Microphone access authorized.") case .notDetermined: // Request microphone access. AVCaptureDevice.requestAccess(for: .audio) { granted in if granted { print("Microphone access granted.") } else { print("Microphone access denied.") } } case .denied, .restricted: // Microphone access is denied or restricted. print("Microphone access denied or restricted.") @unknown default: print("Unknown authorization status.") } } }
[/code] Я уже пробовал это сделать, добавив в фреймы, но это вообще не работает.