animateWithDuration播放声音不重复

时间:2015-08-25 21:49:14

标签: ios swift playback animatewithduration soundeffect

我有一个用animateWithDuration和setAnimationRepeatCount()制作动画的脉冲矩形。

我正在尝试在动画块中添加声音效果,同步“点击”。但声音效果只播放一次。我在任何地方都找不到任何暗示。

UIView.animateWithDuration(0.5,
                           delay: 0,
                           options: UIViewAnimationOptions.AllowUserInteraction | UIViewAnimationOptions.CurveEaseOut | UIViewAnimationOptions.Repeat,
                           animations: {
                               UIView.setAnimationRepeatCount(4)
                               self.audioPlayer.play()
                               self.img_MotronomLight.alpha = 0.1
                           }, completion: nil)

声音效果应播放四次但不播放。

音频实施:

//global:
var metronomClickSample = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("metronomeClick", ofType: "mp3")!)
var audioPlayer = AVAudioPlayer()

override func viewDidLoad() {
    super.viewDidLoad()

    audioPlayer = AVAudioPlayer(contentsOfURL: metronomClickSample, error: nil)
    audioPlayer.prepareToPlay()
....
}

@IBAction func act_toggleStartTapped(sender: AnyObject) {
 ....
    UIView.animateWithDuration(....
                    animations: { 
                           UIView.setAnimationRepeatCount(4)
                           self.audioPlayer.play()
                           self.img_MotronomLight.alpha = 0.1
                    }, completion: nil)
}

1 个答案:

答案 0 :(得分:0)

在没有看到音频播放器的实现的情况下,我能想到的一些事情包括:

  • 音频文件太长,可能在它的末尾有静音,所以它没有播放文件的第一部分有声音

  • 每次都需要将音频文件设置为文件的开头(可能只是播放文件的末尾3次,导致没有音频输出)

  • 动画发生得很快,音频没有时间缓冲

希望这些建议可以帮助您缩小问题的范围但是没有看到播放器的实现,很难说实际问题是什么。