[Swift]音频循环播放
如图,视频通话等待时,实现音频循环播放。
·
如图,视频通话等待时,实现音频循环播放。

使用:
import UIKit
class CallPrepareAlertView: FWPopupView {
deinit {
CMSoundPlayer.shared.stop()
}
override func awakeFromNib() {
super.awakeFromNib()
DispatchQueue.global().asyncAfter(deadline: .now()) {
CMSoundPlayer.shared.playCallSound()
}
}
}
播放器:
import Foundation
import AVFoundation
class CMSoundPlayer: NSObject {
static let shared = CMSoundPlayer()
var queuePlayer = AVQueuePlayer()
var playerLooper: AVPlayerLooper?
func playWithURL(_ url: URL) {
CMAudioHelper.onlyActivePlay()
let playerItem = AVPlayerItem(asset: AVAsset(url: url))
playerLooper = AVPlayerLooper(player: queuePlayer, templateItem: playerItem)
play()
}
func play() {
queuePlayer.play()
}
func pause() {
queuePlayer.pause()
}
func stop() {
pause()
}
}
extension CMSoundPlayer {
/// 拨打视频电话等待时的声音
func playCallSound() {
guard let url = Bundle.main.url(forResource: "callsound", withExtension: "mp3") else { return }
playWithURL(url)
}
func playFormSkipForm() {
guard let url = Bundle.main.url(forResource: "formSkipForm", withExtension: "mp3") else { return }
playWithURL(url)
}
}
结合另一篇使用效果更好,应用内播放音视频不影响后台音乐播放。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)