SwiftUI自学成长笔记
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.6 在应用程序中播放声音

本节,我们将为应用程序添加声音效果,适当、适度的音效可以提升应用程序的用户体验。

首先,需要将音效文件添加到项目之中。在“项目资源/Sound”文件夹中将soundtransitions.mp3文件拖曳到项目之中,如图1-28所示。然后在弹出的选项对话框中,确认勾选了Copy items if needed后单击Finish按钮。

图1-28 添加音效文件到项目之中

然后在项目中添加一个新的Swift类型文件,将其命名为PlaySound。修改其代码如下。

因为需要播放音频,所以需要先导入AVFoundation框架,该框架包含很多与音视频播放相关的API。之后声明AVAudioPlayer类型的变量audioPlayer,注意该变量为可选类型,这是因为它有可能在初始化该变量的时候出现问题,从而导致系统崩溃。

接下来创建一个函数playSound(),它包含两个参数,第一个参数为音频文件名,第二个参数为音频文件扩展名,它们都是字符串类型。在函数体内部,我们会创建一个新的变量存储音频文件在系统中的路径。如果该音频文件存在,就在if语句内部通过do……catch代码块播放音效,如果播放不成功,则在catch闭包内处理可能发生的错误事件。

如果通过AVAudioPlayer()正确载入音频文件,就可以通过play()方法播放音效了。否则会跳转到catch部分,在控制台中打印错误信息。

接下来,让我们在CardView中调用playSound()方法。

回到ContentView.swift文件,在预览窗口中启动Live模式并单击按钮测试音频播放的效果,当听到声音以后,你是否感觉这个应用程序很不错呢?