[SceneKit专题]17-Audio音频

947 阅读1分钟

说明

本系列文章是对<3D Apple Games by Tutorials>一书的学习记录和体会

此书对应的代码地址

SceneKit系列文章目录

Scene Kit中的重要音频组件:

  • SCNAudioSource(音频资源):音频资源对象可以表示一段音乐或音效.可以预加载到内存中也可以实时流读取
  • SCNAudioPlayer(音频播放器):本身就是SCNNode的子类,借助SCNNode对象的位置,可以实现3D效果的音频
  • SCNAction.playAudioSource(_:waitForCompletion:)(音频播放动作):这是一个特殊的Action动作,可以让SCNNode播放音频资源

添加音乐

// 1.
if game.state == .TapToPlay {
  // 2.加载音频资源
  let music = SCNAudioSource(fileNamed: "MrPig.scnassets/Audio/
Music.mp3")!
// 3.设置音量,循环播放,流读取,空间化(是否随位置不同有3D效果)
  music.volume = 0.3;
  music.loops = true
  music.shouldStream = true
  music.positional = false
  // 4.创建播放器
  let musicPlayer = SCNAudioPlayer(source: music)
  // 5.添加播放器
  splashScene.rootNode.addAudioPlayer(musicPlayer)
}