mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
Sample of playing back an mp3
This commit is contained in:
parent
fa8e80965a
commit
ae4c727a64
3 changed files with 32 additions and 3 deletions
|
|
@ -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 = "<group>"; };
|
||||
42321E832714E6B00056429F /* styles */ = {isa = PBXFileReference; lastKnownFileType = folder; path = styles; sourceTree = "<group>"; };
|
||||
42321E842714E6B00056429F /* views */ = {isa = PBXFileReference; lastKnownFileType = folder; path = views; sourceTree = "<group>"; };
|
||||
42B554A628A6355500C213D3 /* speech-sample.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = "speech-sample.mp3"; sourceTree = "<group>"; };
|
||||
42FF1AEB271154A600B38C38 /* SafariWebExtensionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SafariWebExtensionHandler.swift; sourceTree = "<group>"; };
|
||||
42FF1AED271154A600B38C38 /* _locales */ = {isa = PBXFileReference; lastKnownFileType = folder; path = _locales; sourceTree = "<group>"; };
|
||||
42FF1AEE271154A600B38C38 /* images */ = {isa = PBXFileReference; lastKnownFileType = folder; path = images; sourceTree = "<group>"; };
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
BIN
apple/Resources/speech-sample.mp3
Normal file
BIN
apple/Resources/speech-sample.mp3
Normal file
Binary file not shown.
Loading…
Reference in a new issue