📜  在 swift 中播放声音(1)

📅  最后修改于: 2023-12-03 15:23:19.925000             🧑  作者: Mango

在 Swift 中播放声音

在 iOS 应用程序中,播放声音是一个非常常见的需求,例如播放音乐、提示声等等。在 Swift 中,可以使用几种不同的方式来实现声音的播放。下面将介绍其中的两种方式:AVAudioPlayer 和 AVPlayer。

AVAudioPlayer

AVAudioPlayer 是一个音频播放器,可以使用它来播放各种音频格式的文件,例如 .wav、.mp3 等等。这是一个非常简单的示例,演示如何使用 AVAudioPlayer 播放一个 .wav 文件:

import AVFoundation

var audioPlayer: AVAudioPlayer!

if let soundFilePath = Bundle.main.path(forResource: "sound", ofType: "wav") {
    let soundFileUrl = URL(fileURLWithPath: soundFilePath)
    do {
        audioPlayer = try AVAudioPlayer(contentsOf: soundFileUrl)
        audioPlayer.prepareToPlay()
        audioPlayer.play()
    } catch {
        // 处理错误
    }
}
  1. 首先,我们需要导入 AVFoundation 框架。
  2. 然后,我们定义了一个 AVAudioPlayer 实例变量 audioPlayer
  3. 使用 Bundle.main.path(forResource:ofType:) 方法来获取 .wav 文件的路径。
  4. 然后,我们使用 URL(fileURLWithPath:) 方法将路径转换为文件 URL。
  5. 接下来,我们使用 try AVAudioPlayer(contentsOf: soundFileUrl) 方法创建一个 AVAudioPlayer 实例。如果创建失败,将抛出一个错误。
  6. 接下来,我们调用 prepareToPlay() 方法准备播放器。
  7. 最后,我们调用 play() 方法来开始播放音频文件。
AVPlayer

AVPlayer 是一个更高级的音频播放器,它可以播放远程音频流和本地音频文件。如果您需要播放纯音频,并且可能需要跨多个文件和来源播放,那么使用 AVPlayer 是更好的选择。这是一个示例,演示如何使用 AVPlayer 播放一个 .mp3 文件:

import AVKit

var player: AVPlayer?

if let url = URL(string: "http://example.com/sound.mp3") {
    player = AVPlayer(url: url)
    player?.play()
}
  1. 首先,我们需要导入 AVKit 框架。
  2. 然后,我们定义了一个 AVPlayer 实例变量 player
  3. 使用 URL(string:) 方法来获取远程 .mp3 文件的 URL。
  4. 然后,我们使用 AVPlayer(url:) 方法创建一个 AVPlayer 实例。
  5. 最后,我们调用 play() 方法来开始播放音频文件。
结论

以上是使用 AVAudioPlayer 和 AVPlayer 播放音频文件的简单示例。您可以根据自己的需求,使用适当的方法来播放声音。AVAudioPlayer 是一个适用于播放本地音频文件的较简单的播放器,而 AVPlayer 则更适用于播放远程音频流和跨多个来源播放的纯音频。