From a3563657ab56258ad24758ead3735da26c45e9c8 Mon Sep 17 00:00:00 2001 From: talksik Date: Mon, 3 Jan 2022 22:02:11 -0800 Subject: [PATCH] adding file and appropriate player but not playing on send --- nirvana-ios.xcodeproj/project.pbxproj | 4 + .../InnerCircle/InnerCircleViewModel.swift | 76 +++++++++++------- nirvana-ios/sounds/woosh.mp3 | Bin 0 -> 38271 bytes 3 files changed, 50 insertions(+), 30 deletions(-) create mode 100644 nirvana-ios/sounds/woosh.mp3 diff --git a/nirvana-ios.xcodeproj/project.pbxproj b/nirvana-ios.xcodeproj/project.pbxproj index af50bd7..51e8f80 100644 --- a/nirvana-ios.xcodeproj/project.pbxproj +++ b/nirvana-ios.xcodeproj/project.pbxproj @@ -17,6 +17,7 @@ 890919A42781845D0025F4BB /* AlertToast in Frameworks */ = {isa = PBXBuildFile; productRef = 890919A32781845D0025F4BB /* AlertToast */; }; 890919A7278299590025F4BB /* RuleBook.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890919A6278299590025F4BB /* RuleBook.swift */; }; 890919AB2782DC760025F4BB /* ProgressBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890919AA2782DC760025F4BB /* ProgressBarView.swift */; }; + 890919B1278401E00025F4BB /* woosh.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 890919B0278401E00025F4BB /* woosh.mp3 */; }; 890C245D277BF628009B4A30 /* AgoraRtcKit in Frameworks */ = {isa = PBXBuildFile; productRef = 890C245C277BF628009B4A30 /* AgoraRtcKit */; }; 890C2460277BF896009B4A30 /* AgoraViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890C245F277BF896009B4A30 /* AgoraViewController.swift */; }; 890C2462277BF935009B4A30 /* CallView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890C2461277BF935009B4A30 /* CallView.swift */; }; @@ -109,6 +110,7 @@ 8909199D278155920025F4BB /* UserStatusView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserStatusView.swift; sourceTree = ""; }; 890919A6278299590025F4BB /* RuleBook.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RuleBook.swift; sourceTree = ""; }; 890919AA2782DC760025F4BB /* ProgressBarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressBarView.swift; sourceTree = ""; }; + 890919B0278401E00025F4BB /* woosh.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = woosh.mp3; sourceTree = ""; }; 890C245F277BF896009B4A30 /* AgoraViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AgoraViewController.swift; sourceTree = ""; }; 890C2461277BF935009B4A30 /* CallView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallView.swift; sourceTree = ""; }; 890C2463277BFA97009B4A30 /* AgroRep.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AgroRep.swift; sourceTree = ""; }; @@ -210,6 +212,7 @@ isa = PBXGroup; children = ( 8909199B277EFDF30025F4BB /* joinSound.mp3 */, + 890919B0278401E00025F4BB /* woosh.mp3 */, 89091998277EFDCC0025F4BB /* leaveSound.mp3 */, ); path = sounds; @@ -626,6 +629,7 @@ 891A15E827653A7100B26659 /* Preview Assets.xcassets in Resources */, 8909199C277EFDF30025F4BB /* joinSound.mp3 in Resources */, 891A15E527653A7100B26659 /* Assets.xcassets in Resources */, + 890919B1278401E00025F4BB /* woosh.mp3 in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/nirvana-ios/Views/InnerCircle/InnerCircleViewModel.swift b/nirvana-ios/Views/InnerCircle/InnerCircleViewModel.swift index 14d4591..de11875 100644 --- a/nirvana-ios/Views/InnerCircle/InnerCircleViewModel.swift +++ b/nirvana-ios/Views/InnerCircle/InnerCircleViewModel.swift @@ -148,41 +148,57 @@ extension InnerCircleViewModel { if self.audioLocalUrl != nil { // upload to the cloud storage - self.cloudStorageService.uploadLocalUrl(localFileUrl: self.audioLocalUrl!) {[weak self] audioDataUrl in - if audioDataUrl == nil { - print("there was an error in uploading file") - self?.toast = .problemSendingClip - return - } - - let newMessage = Message(sendId: sender.id!, receivId: receiver.id!, audioDUrl: audioDataUrl!.absoluteString) - - // create a new message in firestore with the url for receiving user to automatically get notified - self?.firestoreService.createMessage(message: newMessage) {[weak self] res in - print(res) - - switch res { - case .success: - - self?.toast = .clipSent - - // sending push notification if there was a device token for this friend - if receiver.deviceToken != nil && receiver.nickname != nil { - self?.pushNotificationService.sendPushNotification(to: receiver.deviceToken!, title: "🌱Nirvana", body: "continue your conversation with \(sender.nickname ?? "your friend")") + DispatchQueue.global(qos: .background).async { + self.cloudStorageService.uploadLocalUrl(localFileUrl: self.audioLocalUrl!) {[weak self] audioDataUrl in + if audioDataUrl == nil { + print("there was an error in uploading file") + DispatchQueue.main.async { + self?.toast = .problemSendingClip } + return + } + + let newMessage = Message(sendId: sender.id!, receivId: receiver.id!, audioDUrl: audioDataUrl!.absoluteString) + + // create a new message in firestore with the url for receiving user to automatically get notified + self?.firestoreService.createMessage(message: newMessage) {[weak self] res in + print(res) - // delete local audio file from user's phone so that it doesn't take crazy space - print("stopped recording: file about to get deleted from \(self?.getTemporaryDirectory()) with filename: \(self?.audioLocalUrl)") - - try? FileManager.default.removeItem(at: (self?.audioLocalUrl)!) - case .error(let err): - print(err) - self?.toast = .problemSendingClip - default: - self?.toast = .problemSendingClip + DispatchQueue.main.async { + switch res { + case .success: + // play woosh + if let wooshFilePath = URL(string: Bundle.main.path(forResource: "woosh", ofType: "mp3") ?? "") { + print(wooshFilePath) + + self?.stopPlayingAnyAudio() + self?.queuePlayer = AVQueuePlayer(playerItem: AVPlayerItem(url: wooshFilePath)) + self?.queuePlayer.automaticallyWaitsToMinimizeStalling = false + self?.queuePlayer.play() + } + + self?.toast = .clipSent + + // sending push notification if there was a device token for this friend + if receiver.deviceToken != nil && receiver.nickname != nil { + self?.pushNotificationService.sendPushNotification(to: receiver.deviceToken!, title: "🌱Nirvana", body: "continue your conversation with \(sender.nickname ?? "your friend")") + } + + // delete local audio file from user's phone so that it doesn't take crazy space + print("stopped recording: file about to get deleted from \(self?.getTemporaryDirectory()) with filename: \(self?.audioLocalUrl)") + + try? FileManager.default.removeItem(at: (self?.audioLocalUrl)!) + case .error(let err): + print(err) + self?.toast = .problemSendingClip + default: + self?.toast = .problemSendingClip + } + } } } } + } else { print("nothing recorded, can't send") diff --git a/nirvana-ios/sounds/woosh.mp3 b/nirvana-ios/sounds/woosh.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..f65c2cef20497ff3db204d24d56d545a3e4e8e0f GIT binary patch literal 38271 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 Y