在Swift 3中创建音乐播放器应用

在此博客中,我将逐步创建一个音乐播放器应用程序,以播放我最喜欢的歌曲之一:Purple Rain☔️。 在此应用程序中,我们将使用AVFoundation,这是一个Apple框架,可让我们记录/播放/编辑照片,视频和音频。

步骤1:建立使用者介面

对于我的UI,在Storyboard中 ,我拖动了一个带有三个按钮的工具栏 。 在Attributes Inspector中 ,我使用PLAY按钮,PAUSE按钮将按钮更改为Systems Items ,并在最后一个按钮上键入“ Restart”。

我还确保在三个按钮之间分别拖动了弹性空格键按钮项

步骤2:为这些按钮创建IBAction。

按住Control键,将故事板中的3个按钮分别拖到ViewController文件中。

确保每个连接都是一个动作 ,而不是一个插座

步骤3:选择歌曲!

我已经从iTunes下载了《 Purple Rain》这首歌,因此将其从iTunes拖到“项目导航器”窗格中(位于Main.storyboard下方 )文件中。 如果需要,复制项目。

当它出现在“导航器”窗格中时,我将其重命名为简单的名称,例如PurpleRain。 文件类型为.m4a 。 请勿将其更改为mp3。 当我尝试将其更改为mp3时,发生了坏事。

步骤4和5:导入AVFoundation并创建一个AVAudioPlayer。

就像我之前提到的,AVFoundation是Apple的框架,允许您播放/编辑/创建视频/照片/音频。 从Apple文档中:

AV Foundation框架提供了一个Objective-C界面,用于在iOS和macOS应用程序中管理和播放视听媒体。

我们在顶部导入此框架,并创建一个AVAudioPlayer类的实例,该类正是这样做的,它播放文件中的音频。

第6步:编写一个函数来设置我们的歌曲和会话。

从Apple文档中:

音频会话用于与系统交流您打算如何在应用程序中使用音频。 音频会话充当您的应用程序与操作系统之间的中介,进而充当基础音频硬件之间的中介。

我编写了一个函数prepareSongAndSession()来处理此功能:

步骤7–13:设置我们的AVAudioPlayer和AVAudioSession。

由于我是从iTunes手动将Purple Rain歌曲拖到项目中的,所以现在它已成为项目Bundle的一部分。

#7 —我将歌曲(来自捆绑包)插入我的AVAudioPlayer中 。 我用“!”来敲它,因为我确定这首歌存在于项目中。 此操作将引发错误,因此将执行do / try / catch块。

转到“ 构建阶段/复制捆绑包”资源 ,以确保您的音乐文件存储在此处。 如果不是,请将其从“导航器”窗格拖动到“ 副本捆绑资源”文件夹中。

#8 —我在songPlayer上调用prepareToPlay()方法。

#9 —我创建了一个AVAudioSession ,它向系统传达我将如何使用它(玩王子!)

#10 —将我们的audioSession的类别设置为AVAudioSessionCategoryPlayback ,这是播放录制的音乐所需的类别。 此操作会引发错误,因此会执行do / try / catch块。

#11&12 —每个catch块的打印/处理错误。

#13 —在viewDidLoad()中调用此函数。

步骤14:在我们的songPlayer上调用.play()方法。

步骤15和16:处理暂停功能。

#15 —我创建了一个布尔值hasBeenPaused,其默认值为false,它将管理暂停功能的状态。

#16 —在我的pause()函数中,如果songPlayer当前正在播放,则我暂停songPlayer并将hasBeenPaused布尔值更改为true。

步骤17:处理重启功能。

我检查我的songPlayer是否正在播放,或者是否已暂停并停止songPlayer。 我将songPlayer重置为当前时间零,然后继续播放。

生成并运行。

您可以在这里找到该项目的仓库。

资源:

AVAudioPlayer — Apple文档

AVAudioSession — Apple文档