SKAction 播放声音不是从头开始的
Posted
技术标签:
【中文标题】SKAction 播放声音不是从头开始的【英文标题】:SKAction play sound not from begining 【发布时间】:2017-12-06 03:49:55 【问题描述】:我不想从 mp3 文件的开头播放声音,而是从开始后 14 秒开始播放声音。我有以下用于声音播放的代码,但我没有成功找到解决方案:
if let textAudio = textAudio
let wait = SKAction.wait(forDuration: 0.1)
let play = SKAction.play()
if view.scene! == scene02
// play 14s after begining
textAudio.run(SKAction.sequence([wait, play]))
【问题讨论】:
据我所知,SKAction 无法做到这一点。 如果你想坚持使用SpriteKit
框架,你需要使用SKAudioNode
和AVAudioPlayerNode
。为这个写一个答案需要太长时间,而且我不知道有任何解释这个机制的教程,也许其他人可以添加到这个评论中。
【参考方案1】:
您可以按照here 的说明使用AVAudioPlayer
和currentTime
方法:
import AVFoundation
var textAudio: AVAudioPlayer?
let path = Bundle.main.path(forResource: "example.mp3", ofType:nil)!
let url = URL(fileURLWithPath: path)
do
textAudio = try AVAudioPlayer(contentsOf: url)
textAudio?.currentTime = TimeInterval(14.0)
textAudio?.play()
catch
// couldn't load file :(
【讨论】:
以上是关于SKAction 播放声音不是从头开始的的主要内容,如果未能解决你的问题,请参考以下文章
animate动画(flash)插入了一个音频必须从头开始播放从中间开始播放就没声音
在 spritekit swift 中触摸节点时没有播放声音
OpenAL vs AVAudioPlayer vs 其他播放声音的技术