Signal-iOS/SignalUI/Utils/OWSSounds+SignalUI.swift
2021-10-19 09:39:53 -03:00

34 lines
967 B
Swift

//
// Copyright (c) 2021 Open Whisper Systems. All rights reserved.
//
import Foundation
import SignalMessaging
extension OWSSounds {
private static func shouldAudioPlayerLoop(forSound sound: OWSSound) -> Bool {
guard let sound = OWSStandardSound(rawValue: sound) else {
return false
}
switch sound {
case .callConnecting, .callOutboundRinging, .defaultiOSIncomingRingtone:
return true
default:
return false
}
}
@objc
public static func audioPlayer(forSound sound: OWSSound, audioBehavior: OWSAudioBehavior) -> OWSAudioPlayer? {
guard let soundUrl = OWSSounds.soundURL(forSound: sound, quiet: false) else {
return nil
}
let player = OWSAudioPlayer(mediaUrl: soundUrl, audioBehavior: audioBehavior)
if shouldAudioPlayerLoop(forSound: sound) {
player.isLooping = true
}
return player
}
}