diff --git a/apple/Omnivore.xcodeproj/project.pbxproj b/apple/Omnivore.xcodeproj/project.pbxproj index 7b20a9b8c..a98ce6885 100644 --- a/apple/Omnivore.xcodeproj/project.pbxproj +++ b/apple/Omnivore.xcodeproj/project.pbxproj @@ -42,6 +42,8 @@ 42321E882714E6B00056429F /* styles in Resources */ = {isa = PBXBuildFile; fileRef = 42321E832714E6B00056429F /* styles */; }; 42321E892714E6B00056429F /* views in Resources */ = {isa = PBXBuildFile; fileRef = 42321E842714E6B00056429F /* views */; }; 42321E8A2714E6B00056429F /* views in Resources */ = {isa = PBXBuildFile; fileRef = 42321E842714E6B00056429F /* views */; }; + 42B554A728A6355500C213D3 /* speech-sample.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 42B554A628A6355500C213D3 /* speech-sample.mp3 */; }; + 42B554A828A6355500C213D3 /* speech-sample.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 42B554A628A6355500C213D3 /* speech-sample.mp3 */; }; 42FF1B33271154A700B38C38 /* SafariWebExtensionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42FF1AEB271154A600B38C38 /* SafariWebExtensionHandler.swift */; }; 42FF1B34271154A700B38C38 /* SafariWebExtensionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42FF1AEB271154A600B38C38 /* SafariWebExtensionHandler.swift */; }; 42FF1B35271154A700B38C38 /* _locales in Resources */ = {isa = PBXBuildFile; fileRef = 42FF1AED271154A600B38C38 /* _locales */; }; @@ -209,6 +211,7 @@ 42321E822714E6B00056429F /* scripts */ = {isa = PBXFileReference; lastKnownFileType = folder; path = scripts; sourceTree = ""; }; 42321E832714E6B00056429F /* styles */ = {isa = PBXFileReference; lastKnownFileType = folder; path = styles; sourceTree = ""; }; 42321E842714E6B00056429F /* views */ = {isa = PBXFileReference; lastKnownFileType = folder; path = views; sourceTree = ""; }; + 42B554A628A6355500C213D3 /* speech-sample.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = "speech-sample.mp3"; sourceTree = ""; }; 42FF1AEB271154A600B38C38 /* SafariWebExtensionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SafariWebExtensionHandler.swift; sourceTree = ""; }; 42FF1AED271154A600B38C38 /* _locales */ = {isa = PBXFileReference; lastKnownFileType = folder; path = _locales; sourceTree = ""; }; 42FF1AEE271154A600B38C38 /* images */ = {isa = PBXFileReference; lastKnownFileType = folder; path = images; sourceTree = ""; }; @@ -501,6 +504,7 @@ E5BF4CE3B3AD6358C6D015F7 /* Resources */ = { isa = PBXGroup; children = ( + 42B554A628A6355500C213D3 /* speech-sample.mp3 */, EE1FBB090D0F87F3E57C8A4B /* LaunchScreen.storyboard */, 03BE831A6CCC63104CB366AE /* Assets.xcassets */, ); @@ -841,6 +845,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 42B554A828A6355500C213D3 /* speech-sample.mp3 in Resources */, 04B8B00326A0BA9500D3ED0C /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -878,6 +883,7 @@ buildActionMask = 2147483647; files = ( 637E8CD320005ED0D0A71130 /* Assets.xcassets in Resources */, + 42B554A728A6355500C213D3 /* speech-sample.mp3 in Resources */, CE5633B39A46CED02EF33C05 /* LaunchScreen.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderContainer.swift b/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderContainer.swift index 2feafe672..5fcf22bbb 100644 --- a/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderContainer.swift +++ b/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderContainer.swift @@ -55,6 +55,27 @@ struct WebReaderContainerView: View { } } + static var player: AVAudioPlayer? + + func playSound() { + guard let url = Bundle.main.url(forResource: "speech-sample", withExtension: "mp3") else { return } + + do { + print("starting to play audio") + try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback) + try AVAudioSession.sharedInstance().setActive(true) + + let player = try AVAudioPlayer(contentsOf: url) +// +// player.enableRate = true +// player.rate = 1.5 + player.play() + + } catch { + print("error playing audio", error.localizedDescription) + } + } + var navBar: some View { HStack(alignment: .center) { #if os(iOS) @@ -73,9 +94,11 @@ struct WebReaderContainerView: View { if FeatureFlag.enableTextToSpeechButton { Button( action: { - guard let htmlContent = item.htmlContent else { return } - let synthesizer = AVSpeechSynthesizer() - synthesizer.speak(AVSpeechUtterance(string: htmlContent)) +// guard let htmlContent = item.htmlContent else { return } +// let synthesizer = AVSpeechSynthesizer() +// synthesizer.speak(AVSpeechUtterance(string: htmlContent)) +// synthesizer.sp + playSound() }, label: { Image(systemName: "play") diff --git a/apple/Resources/speech-sample.mp3 b/apple/Resources/speech-sample.mp3 new file mode 100644 index 000000000..d371c8543 Binary files /dev/null and b/apple/Resources/speech-sample.mp3 differ