【问题标题】:Sound in Refresh controller刷新控制器中的声音
【发布时间】:2020-08-21 08:17:55
【问题描述】:

所以,我的 UITableViewController 中有标准的刷新控制器,它会更新表格视图中的数据。

 lazy var refresher: UIRefreshControl = {
    let refreshControl = UIRefreshControl()
    refreshControl.tintColor = .lightGray
    refreshControl.addTarget(self, action: #selector(refresh), for: .valueChanged)
    return refreshControl
}()

    @objc func refresh(){
    getMethod()
    self.tableView.reloadData()
    let deadline = DispatchTime.now() + .milliseconds(500)
    DispatchQueue.main.asyncAfter(deadline: deadline){
        self.refresher.endRefreshing()
    }

所以我想添加声音,当用户刷新开始时,以及刷新完成时的声音。与 Facebook 或 Twitter 应用程序中的相同。有可能吗?

【问题讨论】:

    标签: swift tableview uirefreshcontrol


    【解决方案1】:

    您可以通过这个简单的解决方案实现您的目标。首先在您的班级中导入AVFoundation,然后将音频文件添加到您的项目中,方法是将它们拖到xcode:

    然后创建一个播放声音的方法(如果您的文件不是 mp3 则更改 ofType 参数值):

    private var player: AVAudioPlayer?
    
    func playSound(soundFileName: String) {
        guard
            let urlPath = Bundle.main.path(forResource: soundFileName, ofType: "mp3")
            else { return }
        
        let url = URL(fileURLWithPath: urlPath)
        
        do {
            player = try AVAudioPlayer(contentsOf: url)
            player?.prepareToPlay()
            player?.play()
        } catch {
            print(error)
        }
    }
    

    刷新开始时最后调用方法

    @objc func refresh(){
        playSound(soundFileName: "refresh-start")
        getMethod()
        self.tableView.reloadData()
        let deadline = DispatchTime.now() + .milliseconds(500)
        DispatchQueue.main.asyncAfter(deadline: deadline){
            self.refresher.endRefreshing()
        }
    }
    

    以及刷新结束的时间。

    【讨论】:

    • 谢谢,效果很好!!没想到这么简单。
    • 其他问题。如果手机处于静音模式,如何使声音静音?
    • @YessenYermukhanbet 您是否尝试过在设备上以静默模式运行此代码?我相信声音不会播放。
    • 是的,我也将它下载到我的设备上,并尝试将其更改为静音模式。但是,它仍然在播放那个声音。形成网络,它似乎应该被静音,但奇怪的是它不是。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 2015-03-11
    • 1970-01-01
    相关资源
    最近更新 更多